Exemplo n.º 1
0
        private async Task <bool> SavePlannedRecurrence(PlannedRecurrenceDto dto, string userId)
        {
            if (dto.IsDeleted)
            {
                await _plannedRecurrenceRepository.DeleteAsync(dto.Uid);

                return(true);
            }

            PlannedRecurrenceEntity entity = await _plannedRecurrenceRepository.GetByIdAsync(dto.Uid);

            if (entity == null)
            {
                entity        = _mapper.Map <PlannedRecurrenceEntity>(dto);
                entity.UserId = userId;
                await _plannedRecurrenceRepository.UpsertAsync(entity);

                return(true);
            }

            if (!RecurrenceIsChanged(entity, dto))
            {
                return(false);
            }

            entity.Task          = dto.Task;
            entity.StartDate     = dto.StartDate;
            entity.EndDate       = dto.EndDate;
            entity.EveryNthDay   = dto.EveryNthDay;
            entity.EveryWeekday  = dto.EveryWeekday;
            entity.EveryMonthDay = dto.EveryMonthDay;
            var(success, _)      = await _plannedRecurrenceRepository.TryUpdateVersionAsync(entity);

            return(success);
        }
Exemplo n.º 2
0
 private bool RecurrenceIsChanged(PlannedRecurrenceEntity entity, PlannedRecurrenceDto dto)
 {
     return(!string.Equals(entity.Task, dto.Task) ||
            entity.StartDate != dto.StartDate ||
            entity.EndDate != dto.EndDate ||
            entity.EveryNthDay != dto.EveryNthDay ||
            entity.EveryWeekday != dto.EveryWeekday ||
            !string.Equals(entity.EveryMonthDay, dto.EveryMonthDay));
 }