public async Task <JsonResult> AddCommunityGroupSteps(CommunityGroupViewModel model, IFormFile file, IFormFile articleShareDocument) { model.UserId = this._claimAccessor.UserId; BaseModel result = await _communityGroupsService.SaveAsync(model, file, articleShareDocument); if (result.Status && model.Id == 0) { var pathToFile = _env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates" + Path.DirectorySeparatorChar.ToString() + "EmailTemplates" + Path.DirectorySeparatorChar.ToString() + "NewCommunityGroup.html"; string HtmlBody = string.Empty; using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile)) { HtmlBody = SourceReader.ReadToEnd(); } var callbackUrl = Url.Action("CommunityGroupVerification", "Shx", null, protocol: HttpContext.Request.Scheme) + "/"; await _communityGroupEmailService.SendCommunityGroupPublishEmailAsync(result.Id, HtmlBody, callbackUrl); } return(Json(result)); //return null; }
private async Task <BaseModel> Update(CommunityGroupViewModel model) { CommunityGroupsDataModel communityGroupModel = await _unitOfWork.UserCommunityGroupsRepository.GetByID(model.Id); try { communityGroupModel.Title = model.Title; communityGroupModel.Description = model.Description; if (!string.IsNullOrEmpty(model.DescriptionVideoUrl)) { await _awsS3Bucket.DeleteFileAsync(communityGroupModel.DescriptionVideoUrl); communityGroupModel.DescriptionVideoUrl = model.DescriptionVideoUrl; } communityGroupModel.CommunityGroupURL = Urlhelper.GenerateSeoFriendlyURL(model.Title); //communityGroupModel.IsActive = true; //communityGroupModel.IsPublish = true; communityGroupModel.IsPublicGroup = model.IsPublicGroup; communityGroupModel.AddedDate = DateTime.Now; communityGroupModel.CommunityId = model.OgranizationsId; await _unitOfWork.UserCommunityGroupsRepository.Update(communityGroupModel); //if group is not public then data will save in relation tables if (!model.IsPublicGroup) { //saving data in relation tables await SaveCommunityTargetedGroupsAsync(model.CommunityTargetedGroupId, communityGroupModel.User, communityGroupModel); await SaveCommunityTargetedAssociationAsync(model.AssociationId, communityGroupModel.User, communityGroupModel); //await SaveCommunityTargetedType1Async(model.Type1Id, communityGroupModel.User, communityGroupModel); //await SaveCommunityTargetedType2Async(model.Type2Id, communityGroupModel.User, communityGroupModel); await SaveCommunityTargetedInterestsAsync(model.TargetedInterestIds, communityGroupModel.User, communityGroupModel); } await SaveCommunityGroupsThemeAsync(model.ThemesId, communityGroupModel.User, communityGroupModel); //SaveOpenHours OpenOfficeHoursViewModel OpenOfficeHoursModel = JsonConvert.DeserializeObject <OpenOfficeHoursViewModel>(model.OpenOfficeHours); //OpenOfficeHoursModel.OFromDate = SphixHelper.setDateFromDayName(OpenOfficeHoursModel.OTimeDayName, DateTime.Now.Date); //OpenOfficeHoursModel.OToDate = OpenOfficeHoursModel.OFromDate; await _openOfficeHoursService.SaveOpenHoursAsync(OpenOfficeHoursModel, communityGroupModel.User, communityGroupModel); return(new BaseModel { Status = true, Id = communityGroupModel.Id, Messsage = UMessagesInfo.RecordSaved }); } catch (Exception ex) { return(new BaseModel { Status = false, Messsage = UMessagesInfo.Error }); } }
public async Task <JsonResult> EditCommunityGroupSteps(CommunityGroupViewModel model, IFormFile file, IFormFile articleShareDocument) { model.UserId = this._claimAccessor.UserId; return(Json(await _communityGroupsService.SaveAsync(model, file, articleShareDocument))); //return null; }
private async Task <BaseModel> Save(CommunityGroupViewModel model, UsersLoginDataModel user, string articeDoclUrl) { try { if (string.IsNullOrEmpty(model.TargetedInterestIds) && model.IsPublicGroup == false) { return(new BaseModel { Status = false, Messsage = "Please select Interest" }); } CommunityGroupsDataModel communityGroupModel = new CommunityGroupsDataModel { CreatedBy = model.UserId, User = user, Title = model.Title, CommunityGroupURL = Urlhelper.GenerateSeoFriendlyURL(model.Title), Description = model.Description, DescriptionVideoUrl = model.DescriptionVideoUrl, IsActive = true, IsPublish = false, IsPublicGroup = model.IsPublicGroup, CommunityId = model.OgranizationsId }; await _unitOfWork.UserCommunityGroupsRepository.Insert(communityGroupModel); //if group is not public then data will save in relation tables if (!model.IsPublicGroup) { //saveing data in relation tables await SaveCommunityTargetedGroupsAsync(model.CommunityTargetedGroupId, user, communityGroupModel); await SaveCommunityTargetedAssociationAsync(model.AssociationId, user, communityGroupModel); //await SaveCommunityTargetedType1Async(model.Type1Id, user, communityGroupModel); //await SaveCommunityTargetedType2Async(model.Type2Id, user, communityGroupModel); await SaveCommunityTargetedInterestsAsync(model.TargetedInterestIds, user, communityGroupModel); } await SaveCommunityGroupsThemeAsync(model.ThemesId, user, communityGroupModel); //SaveOpenHours OpenOfficeHoursViewModel OpenOfficeHoursModel = JsonConvert.DeserializeObject <OpenOfficeHoursViewModel>(model.OpenOfficeHours); OpenOfficeHoursModel.OFromDate = SphixHelper.setDateFromDayName(OpenOfficeHoursModel.OTimeDayName, DateTime.Now.Date); OpenOfficeHoursModel.OToDate = OpenOfficeHoursModel.OFromDate; OpenOfficeHoursModel.IsFirstMeeting = true; await _openOfficeHoursService.SaveOpenHoursAsync(OpenOfficeHoursModel, user, communityGroupModel); //SaveLiveEvent LiveEventViewModel LiveEventModel = JsonConvert.DeserializeObject <LiveEventViewModel>(model.LiveEvent); await SaveLiveEvent(LiveEventModel, user, communityGroupModel); //SaveArticles ArticleViewModel ArticleModel = JsonConvert.DeserializeObject <ArticleViewModel>(model.Article); ArticleModel.ShareDocument = articeDoclUrl; await SaveArticles(ArticleModel, user, communityGroupModel); return(new BaseModel { Status = true, Id = communityGroupModel.Id, Messsage = UMessagesInfo.RecordSaved }); } catch (Exception ex) { return(new BaseModel { Status = false, Messsage = UMessagesInfo.Error }); } }
public async Task <BaseModel> SaveAsync(CommunityGroupViewModel model, IFormFile file, IFormFile aticleSharedoc) { BaseModel baseModel = new BaseModel(); string articeDocUrl = string.Empty; var userData = await _unitOfWork.UserLoginRepository.GetByID(model.UserId); if (userData == null) { return(new BaseModel { Status = false, Messsage = UMessagesInfo.Error }); } try { if (file != null && file.Length > 0) { string folderPath = "CommunityGroups/" + DateTime.Now.Year.ToString(); string fileName = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(file.FileName); string articleFolderPath = "ArcticlesShareDocuments/" + DateTime.Now.Year.ToString(); string articleFileName = string.Empty; if (file.Length > 0) { model.DescriptionVideoUrl = folderPath + "/" + fileName; } if (aticleSharedoc != null && aticleSharedoc.Length > 0) { articleFileName = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(aticleSharedoc.FileName); articeDocUrl = articleFolderPath + "/" + articleFileName; } if (model.Id == 0) //insert record { baseModel = await Save(model, userData, articeDocUrl); } else //update record { baseModel = await Update(model); } if (baseModel.Status == true) { if (file.Length > 0) { await _awsS3Bucket.UploadFileAsync(folderPath, file, fileName); } if (aticleSharedoc != null && aticleSharedoc.Length > 0) { await _awsS3Bucket.UploadFileAsync(articleFolderPath, aticleSharedoc, articleFileName); } } return(baseModel); } ///record insert without video file else { if (model.Id == 0) //insert record { return(await Save(model, userData, articeDocUrl)); } else //update record { model.DescriptionVideoUrl = ""; return(await Update(model)); } } } catch (Exception ex) { return(new BaseModel { Status = false, Messsage = UMessagesInfo.Error }); } }