Exemple #1
0
        public async Task <IActionResult> JoinCommunityOpenHoursMeeting(JoinCommunityOpenHoursMeetingViewModel model)
        {
            if (UMessagesInfo.CheckTimeZoneValidation(model.TimeZone))
            {
                model.UserId = _claimAccessor.UserId;
                var _result = await _joinCommunityOpenHoursMeetingService.SaveAsync(model);

                if (_result.Status)
                {
                    var pathToFile = _env.WebRootPath
                                     + Path.DirectorySeparatorChar.ToString()
                                     + "Templates"
                                     + Path.DirectorySeparatorChar.ToString()
                                     + "EmailTemplates"
                                     + Path.DirectorySeparatorChar.ToString()
                                     + "WelcomJoinOpenHoursMeeting.html";
                    string HtmlBody = string.Empty;
                    using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
                    {
                        HtmlBody = SourceReader.ReadToEnd();
                    }
                    await _openHoursMailService.WelcomeMailOnJoinOpenOfficeHoursMettingAsync(_claimAccessor.UserId, HtmlBody, _result.Data);

                    //send thanks mail
                }
                return(Json(_result));
            }
            else
            {
                return(Json(new BaseModel {
                    Status = false, Messsage = UMessagesInfo.Error
                }));
            }
        }
        public async Task <BaseModel> SaveAsync(JoinCommunityOpenHoursMeetingViewModel model)
        {
            try
            {
                if (model.UserId == 0)
                {
                    return(new BaseModel {
                        Status = false, Messsage = UMessagesInfo.Error
                    });
                }
                var _result = await _unitOfWork.JoinOpenHoursMeetingRepository.FindAllBy(c => c.User.Id == model.UserId && c.OpenOfficeHours.Id == model.OpenOfficeHoursId);

                if (_result != null && _result.Count != 0)
                {
                    return(new BaseModel {
                        Status = false, Messsage = UMessagesInfo.MeetingJoinAlready
                    });
                }

                JoinOpenHoursMeetingDataModel joinOpenHoursMeeting = new JoinOpenHoursMeetingDataModel();

                joinOpenHoursMeeting.OpenOfficeHours = await _unitOfWork.UserCommunityOpenOfficeHoursRepository.GetByID(model.OpenOfficeHoursId);

                joinOpenHoursMeeting.User = await _unitOfWork.UserLoginRepository.GetByID(model.UserId);

                joinOpenHoursMeeting.IsJoined     = true;
                joinOpenHoursMeeting.JoinDateTime = DateTime.Now;
                joinOpenHoursMeeting.TimeZone     = model.TimeZone;
                await _unitOfWork.JoinOpenHoursMeetingRepository.Insert(joinOpenHoursMeeting);

                return(new BaseModel {
                    Id = joinOpenHoursMeeting.Id, Status = true, Messsage = UMessagesInfo.RecordSaved, Data = joinOpenHoursMeeting.OpenOfficeHours.OFromDate.ToShortDateString() + " at " + joinOpenHoursMeeting.OpenOfficeHours.OTime + " " + joinOpenHoursMeeting.OpenOfficeHours.OTimeZone
                });
            }
            catch (Exception)
            {
                throw;
            }
        }