Как создать Datetime в классе грузинского типа, так как моя система в формате хиджры? - PullRequest
0 голосов
/ 24 января 2019

Я передаю объект в метод.Объект имеет много данных, включая дату в этом формате 2018-10-10 Получение объекта в методе,

public void GetPerformanceReport(Criteria Cri)
{
...
}

Критерии - это класс, имеющий точно такие же данные с переменными.

    public class Criteria 
    {
        /// <summary>
        /// Gets or sets the city.
        /// </summary>
        /// <value>The city.</value>
        public Datetime? From{ get; set; }
        public Datetime? To { get; set; }
}

Теперь проблема в том, что моя системав календаре хиджры дата пришла в метод, но класс критериев das datetime getset, который не понимает его из-за календаря хиджры и дает мне нулевое значение.

Как сделать Dstetime в классе грузинского типа, чтобы я получал датупереход к методу

Отредактировано:

Мой взгляд похож на

                    <div class="col-md-9 ">
                        <div class="input-group input-group-unstyled">
                            <input ng-if="::!$root.isRtl" name="startDate" type="text" class="form-control" ng-class="{'ng-invalid': !vm.isValidRange}"
                                   ng-model="vm.searchCriteria.startDate"
                                   ng-change="vm.validateDateRange()"
                                   calendartype="gregorian"
                                   language="en"
                                   dateformat="yyyy-mm-dd"
                                   showonfocus="true"
                                   kdatepicker
                                   hidden="hidden" readonly required />
                            <input ng-if="::$root.isRtl" name="startDate" type="text" class="form-control" ng-class="{'ng-invalid': !vm.isValidRange}"
                                   ng-model="vm.searchCriteria.startDate"
                                   ng-change="vm.validateDateRange()"
                                   calendartype="gregorian"
                                   language="ar-EG"
                                   dateformat="yyyy-mm-dd"
                                   showonfocus="true"
                                   kdatepicker
                                   hidden="hidden" readonly required />
                            <span class="input-group-addon">
                                <i class="fa fa-calendar"></i>
                            </span>
                        </div>
                    </div>
                </div>
                <div class="form-group col-md-6">
                    <label class="col-md-3 control-label">
                        {{ 'EndDate' | translate }}
                        <span ng-show="criteriaForm.endDate.$invalid">
                            <span ng-show="criteriaForm.endDate.$error.required">*</span>
                        </span>
                    </label>
                    <div class="col-md-9 ">
                        <div class="input-group input-group-unstyled">
                            <input ng-if="::!$root.isRtl" name="endDate" type="text" class="form-control" ng-class="{'ng-invalid': !vm.isValidRange}"
                                   ng-model="vm.searchCriteria.endDate"
                                   ng-change="vm.validateDateRange()"
                                   calendartype="gregorian"
                                   language="en"
                                   dateformat="yyyy-mm-dd"
                                   showonfocus="true"
                                   kdatepicker
                                   hidden="hidden" readonly required />
                            <input ng-if="::$root.isRtl" name="endDate" type="text" class="form-control" ng-class="{'ng-invalid': !vm.isValidRange}"
                                   ng-model="vm.searchCriteria.endDate"
                                   ng-change="vm.validateDateRange()"
                                   calendartype="gregorian"
                                   language="ar-EG"
                                   dateformat="yyyy-mm-dd"
                                   showonfocus="true"
                                   kdatepicker
                                   hidden="hidden" readonly required />
                            <span class="input-group-addon">
                                <i class="fa fa-calendar"></i>
                            </span>
                        </div>

В js я использую функцию поиска, которая

$scope.search = function (page) {
    if (!$scope.SearchReport.$valid) {
        toastr.error(FillAllRequired);
        return;
    }
    if (page != undefined) {
        $scope.page = page;
    }
    evaluationsService.getPerformanceReport($scope.searchCriteria, ($scope.page * $scope.pageSize), $scope.pageSize, $scope.sortBy, $scope.sortingDirection).then(onGetPerformanceReportSuccess, onError);}

По методам GetPerformanceReport это похоже на

   public JsonResult GetPerformanceReport(PerformanceReportSearchCriteria searchCriteria)
        {}

PerformanceReportSearchCriteria - это класс, который

 public class PerformanceReportSearchCriteria
    {
public DateTime? From { get; set; }
 public DateTime? To { get; set; }
}

IN получает отчет о производительности. Я получаю значение Null для From и To date ??

1 Ответ

0 голосов
/ 24 января 2019

Попробуйте выполнить следующее, которое преобразует строку xml в вашу дату и время

    public class Criteria
    {
        private DateTime from { get; set; }
        private DateTime to { get; set; }
        /// <summary>
        /// Gets or sets the city.
        /// </summary>
        /// <value>The city.</value>
        public string From { 
            get { 
                return from.ToString("yyyy-mm-dd");
            }

            set { 
                from = DateTime.ParseExact("yyyy-mm-dd",value, System.Globalization.CultureInfo.InvariantCulture);
            }
        }
       public string To {
           get {
               return to.ToString("yyyy-mm-dd");
           }

            set { 
                to = DateTime.ParseExact("yyyy-mm-dd",value, System.Globalization.CultureInfo.InvariantCulture);
            }
        }
    }
...