private void ConvertToTAbsent(TAbsentViewModel vm, TAbsent entity)
 {
     entity.AbsentPeriod      = new DateTime(vm.AbsentPeriod.Value.Year, vm.AbsentPeriod.Value.Month, 1);
     entity.AbsentLocation    = vm.AbsentLocation;
     entity.AbsentSupervisor  = vm.AbsentSupervisor;
     entity.AbsentAdmin       = vm.AbsentAdmin;
     entity.AbsentTotalQty    = vm.AbsentTotalQty;
     entity.AbsentTotalResult = vm.AbsentTotalResult;
     entity.AbsentTotalBbm    = vm.AbsentTotalBbm;
     entity.EquipId           = string.IsNullOrEmpty(vm.EquipId) ? null : _equipTasks.One(vm.EquipId);
     entity.ProjectId         = string.IsNullOrEmpty(vm.ProjectId) ? null : _tasks.One(vm.ProjectId);
 }
        public ActionResult TAbsents_Update([DataSourceRequest] DataSourceRequest request, TAbsentViewModel vm)
        {
            if (vm != null && ModelState.IsValid)
            {
                var entity = _absentTasks.One(vm.AbsentId);
                if (entity != null)
                {
                    ConvertToTAbsent(vm, entity);

                    entity.ModifiedDate = DateTime.Now;
                    entity.ModifiedBy   = User.Identity.Name;
                    entity.DataStatus   = "Updated";

                    _absentTasks.Update(entity);
                }
            }

            return(Json(ModelState.ToDataSourceResult()));
        }
        public ActionResult TAbsents_Create([DataSourceRequest] DataSourceRequest request, TAbsentViewModel vm)
        {
            if (vm != null && ModelState.IsValid)
            {
                TAbsent entity = new TAbsent();
                entity.SetAssignedIdTo(Guid.NewGuid().ToString());

                ConvertToTAbsent(vm, entity);

                entity.CreatedDate = DateTime.Now;
                entity.CreatedBy   = User.Identity.Name;
                entity.DataStatus  = "New";

                _absentTasks.Insert(entity);

                int        totalDays = entity.AbsentPeriod.Value.AddMonths(1).AddDays(-1).Day;
                DateTime   beginDate = entity.AbsentPeriod.Value;
                TAbsentDet det;
                for (int i = 0; i < totalDays; i++)
                {
                    det = new TAbsentDet();
                    det.SetAssignedIdTo(Guid.NewGuid().ToString());

                    det.AbsentDetDate = beginDate.AddDays(i);
                    det.AbsentId      = entity;

                    det.CreatedDate = DateTime.Now;
                    det.CreatedBy   = User.Identity.Name;
                    det.DataStatus  = "New";

                    _absentDetTasks.Insert(det);
                }
            }

            return(Json(new[] { vm }.ToDataSourceResult(request, ModelState)));
        }