Beispiel #1
0
        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;
        }
Beispiel #2
0
        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
                });
            }
        }
Beispiel #3
0
 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;
 }
Beispiel #4
0
        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
                });
            }
        }
Beispiel #5
0
        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
                });
            }
        }