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);
                }
            }
        }