Ejemplo n.º 1
0
 public async Task <ActionResult> Update(MeetingUpdateDTO dto)
 {
     try
     {
         await _meetingRepository.UpdateFromDTOAsync(dto);
     }
     catch (System.Exception ex)
     {
         return(Problem(ex.Message));
     }
     return(Ok());
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Update a existing meeting from DTO.
        /// </summary>
        public async Task UpdateFromDTOAsync(MeetingUpdateDTO dto)
        {
            var meeting = await this.Get(dto.MeetingID);

            meeting.Title       = dto.Title ?? meeting.Title;
            meeting.Description = dto.Description ?? meeting.Description;
            meeting.RepeatType  = dto.RepeatType ?? meeting.RepeatType;
            meeting.FromDate    = dto.FromDate ?? meeting.FromDate;
            meeting.ToDate      = dto.ToDate ?? meeting.ToDate;

            if (await ValidateMeetingAsync(meeting))
            {
                var attendees = await _userRepository.Find(u => dto.Attendees.Contains(u.ID)).ToListAsync();

                if (attendees.Count() != 0)
                {
                    meeting.Attendees = null;
                    await this.Update(meeting);

                    var t = await this.Get(dto.MeetingID);

                    t.Attendees = attendees;
                    await this.Update(t);
                }
                else
                {
                    await this.Update(meeting);
                }


                await _mailService.SendMail(
                    $"Your meeting '{meeting.Title}' is updated",
                    $"<p>The meeting '{meeting.Title}' have been updated</p>" +
                    $"<p>Description: { (String.IsNullOrEmpty(meeting.Description) ? "Empty" : meeting.Description) }</p>" +
                    $"<p>The Host: { meeting.Creator.Name }</p>" +
                    $"<p>The location is {meeting.Location.Name}</p>" +
                    $"<p>The Departments of this meeting is {String.Join(",", meeting.Departments.Select(x => x.Name))} </p>" +
                    $"<p>The meeting will start on {meeting.FromDate}. End on {meeting.ToDate} </p>",
                    MailType.MeetingUpdated,
                    meeting.Attendees.Select(x => x.Email)
                    );
            }
        }