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