private AccountPeriod ToAccountPeriod(EntityAccountPeriod entity) { var userInfo = UserController.GetUserById(this.PortalId, entity.UserId); return new AccountPeriod { Id = entity.Id, Title = entity.Title, AvailableSlot = entity.AvailableSlot, BeginPeriod = entity.BeginPeriod, EndPeriod = entity.EndPeriod, UserId = entity.UserId, Username = userInfo == null ? "(Deleted)" : userInfo.Username, IsEnabled = entity.IsEnabled, IsBlocked = entity.IsBlocked, WorkingDay = (WorkingDay)entity.WorkingDay, Shifts = this.ConvertShift(entity.AccountShifts) }; }
private void MapChange(BankProjectModelsDataContext dbContext, AccountPeriod accountPeriod, EntityAccountPeriod existEntity) { existEntity.Title = accountPeriod.Title; existEntity.AvailableSlot = accountPeriod.AvailableSlot; existEntity.BeginPeriod = accountPeriod.BeginPeriod; existEntity.EndPeriod = accountPeriod.EndPeriod; existEntity.UserId = accountPeriod.UserId; existEntity.IsEnabled = accountPeriod.IsEnabled; existEntity.IsBlocked = accountPeriod.IsBlocked; existEntity.WorkingDay = (int)accountPeriod.WorkingDay; var currentShiftIds = accountPeriod.Shifts.Select(x => x.Id).ToArray(); var originalShifts = existEntity.AccountShifts.ToList(); foreach (var accountShift in originalShifts) { if (!currentShiftIds.Contains(accountShift.ShiftId)) { existEntity.AccountShifts.Remove(accountShift); dbContext.AccountShifts.DeleteOnSubmit(accountShift); } } foreach (var shiftId in currentShiftIds) { if (existEntity.AccountShifts.All(x => x.ShiftId != shiftId)) { var newAccountShift = new AccountShift { AccountPeriodId = accountPeriod.Id, ShiftId = shiftId }; existEntity.AccountShifts.Add(newAccountShift); dbContext.AccountShifts.InsertOnSubmit(newAccountShift); } } }