Esempio n. 1
0
 public async Task CreateOrEdit(CreateOrEditShiftTypeDto input)
 {
     if (input.Id == null)
     {
         await Create(input);
     }
     else
     {
         await Update(input);
     }
 }
Esempio n. 2
0
        protected virtual async Task Update(CreateOrEditShiftTypeDto input)
        {
            //temp solution need to adjustment

            var shiftType = await _shiftTypeRepository.GetAllIncluding(m => m.ShiftTypeDetails).FirstOrDefaultAsync(x => x.Id == (int)input.Id);

            var oldShiftTypeDetails = new HashSet <ShiftTypeDetail>(shiftType.ShiftTypeDetails.ToList());
            var newShifTypeDetails  = new HashSet <ShiftTypeDetailDto>(input.ShiftTypeDetails.ToList());

            foreach (var detail in oldShiftTypeDetails)
            {
                if (!newShifTypeDetails.Any(x => x.Id == detail.Id))
                {
                    shiftType.ShiftTypeDetails.Remove(detail);
                }
                else
                {
                    var inputDetail = newShifTypeDetails.Where(x => x.Id == detail.Id).FirstOrDefault();
                    detail.InTimeFirstScan  = inputDetail.InTimeFirstScan;
                    detail.InTimeLastScan   = inputDetail.InTimeLastScan;
                    detail.OutTimeFirstScan = inputDetail.OutTimeFirstScan;
                    detail.OutTimeLastScan  = inputDetail.OutTimeLastScan;
                }
            }

            foreach (var item in newShifTypeDetails)
            {
                if (item.Id == 0)
                {
                    shiftType.ShiftTypeDetails.Add(ObjectMapper.Map <ShiftTypeDetail>(item));
                }
            }



            shiftType.DescriptionAr  = input.DescriptionAr;
            shiftType.DescriptionEn  = input.DescriptionEn;
            shiftType.InScan         = input.InScan;
            shiftType.OutScan        = input.OutScan;
            shiftType.CrossDay       = input.CrossDay;
            shiftType.AlwaysAttend   = input.AlwaysAttend;
            shiftType.Open           = input.Open;
            shiftType.MaxBoundryTime = input.MaxBoundryTime;
            shiftType.NumberOfDuties = input.ShiftTypeDetails.Count();


            await _shiftTypeRepository.UpdateAsync(shiftType);
        }
Esempio n. 3
0
        protected virtual async Task Create(CreateOrEditShiftTypeDto input)
        {
            var shiftType = ObjectMapper.Map <ShiftType>(input);

            shiftType.ShiftTypeDetails = new List <ShiftTypeDetail>();

            if (input.ShiftTypeDetails.Count > 0)
            {
                foreach (var item in input.ShiftTypeDetails)
                {
                    shiftType.ShiftTypeDetails.Add(ObjectMapper.Map <ShiftTypeDetail>(item));
                }
            }


            await _shiftTypeRepository.InsertAsync(shiftType);
        }