Ejemplo n.º 1
0
 public static void UpdateEntitleDayManagement(this EntitleDay entitleDay, EntitleDayManagementViewModel entitleDayManagementViewModel)
 {
     entitleDay.ID            = entitleDayManagementViewModel.ID;
     entitleDay.HolidayType   = entitleDayManagementViewModel.HolidayType;
     entitleDay.UnitType      = entitleDayManagementViewModel.UnitType;
     entitleDay.MaxEntitleDay = entitleDayManagementViewModel.MaxEntitleDay;
     entitleDay.Description   = entitleDayManagementViewModel.Description;
     entitleDay.Status        = entitleDayManagementViewModel.Status;
 }
        public async Task <HttpResponseMessage> Create(HttpRequestMessage request, EntitleDayManagementViewModel entitleDayManagementViewModel)
        {
            return(await CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                if (!ModelState.IsValid)
                {
                    response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState);
                }
                else if (_entitleDayManagemantService.CheckHolidayType(entitleDayManagementViewModel.HolidayType, entitleDayManagementViewModel.ID))
                {
                    return request.CreateResponse(HttpStatusCode.BadRequest, Common.Constants.MessageSystem.Create_EntitleDayManagement_Error);
                }
                else if (entitleDayManagementViewModel.MaxEntitleDay == CommonConstants.MinEntitleDay || entitleDayManagementViewModel.MaxEntitleDay > CommonConstants.MaxEntitleDay)
                {
                    return request.CreateResponse(HttpStatusCode.BadRequest, Common.Constants.MessageSystem.MaxEntitleDay_Error);
                }
                else if (entitleDayManagementViewModel.HolidayType == CommonConstants.UnpaidLeave)
                {
                    return request.CreateResponse(HttpStatusCode.BadRequest, Common.Constants.MessageSystem.NoSalary_Error);
                }
                else
                {
                    EntitleDay newEntitleDay = new EntitleDay();
                    entitleDayManagementViewModel.Status = true;
                    if (entitleDayManagementViewModel.HolidayType == CommonConstants.UnpaidLeave)
                    {
                        entitleDayManagementViewModel.Status = false;
                    }
                    newEntitleDay.UpdateEntitleDayManagement(entitleDayManagementViewModel);
                    var model = _entitleDayManagemantService.Add(newEntitleDay);
                    var responseData = Mapper.Map <EntitleDay, EntitleDayManagementViewModel>(newEntitleDay);

                    _entitleDayService.Add(model);
                    response = request.CreateResponse(HttpStatusCode.Created, responseData);
                }
                return response;
            }));
        }
 public async Task <HttpResponseMessage> Update(HttpRequestMessage request, EntitleDayManagementViewModel entitleDayManagementViewModel)
 {
     return(await CreateHttpResponse(request, () =>
     {
         HttpResponseMessage response = null;
         if (!ModelState.IsValid)
         {
             response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState);
         }
         else if (_entitleDayManagemantService.CheckHolidayType(entitleDayManagementViewModel.HolidayType, entitleDayManagementViewModel.ID))
         {
             return request.CreateResponse(HttpStatusCode.BadRequest, Common.Constants.MessageSystem.Create_EntitleDayManagement_Error);
         }
         else if (entitleDayManagementViewModel.MaxEntitleDay == CommonConstants.MinEntitleDay || entitleDayManagementViewModel.MaxEntitleDay > CommonConstants.MaxEntitleDay)
         {
             return request.CreateResponse(HttpStatusCode.BadRequest, Common.Constants.MessageSystem.MaxEntitleDay_Error);
         }
         else
         {
             var dbEntitleDay = _entitleDayManagemantService.GetByIdEntitleDay(entitleDayManagementViewModel.ID);
             float numberDayOff = entitleDayManagementViewModel.MaxEntitleDay - dbEntitleDay.MaxEntitleDay;
             dbEntitleDay.UpdateEntitleDayManagement(entitleDayManagementViewModel);
             _entitleDayManagemantService.Update(dbEntitleDay);
             var model = _entitleDayAppUserService.GetAll();
             foreach (var item in model)
             {
                 if (item.EntitleDayId == dbEntitleDay.ID)
                 {
                     item.MaxEntitleDayAppUser = item.MaxEntitleDayAppUser + numberDayOff;
                     item.MaxEntitleDayAppUser = (item.MaxEntitleDayAppUser < 0) ? 0 : item.MaxEntitleDayAppUser;
                     _entitleDayAppUserService.Update(item);
                 }
             }
             _entitleDayAppUserService.Save();
             response = request.CreateResponse(HttpStatusCode.Created, dbEntitleDay);
         }
         return response;
     }));
 }