示例#1
0
        private async Task <BaseModel> Save(LiveEventViewModel model, UsersLoginDataModel user, CommunityGroupsDataModel communityGroupsData)
        {
            CommunityLiveEvents dataModel = new CommunityLiveEvents
            {
                CreatedBy       = model.UserId,
                User            = user,
                CommunityGroups = communityGroupsData,
                ETitle          = model.ETitle,
                EName           = model.EName,
                EDescription    = model.EDescription,
                EFrequency      = model.EFrequency,
                EFromDate       = model.EFromDate,
                EToDate         = model.EToDate,
                ETime           = model.ETime,
                ETimeDayName    = model.ETimeDayName,
                ETimeZone       = model.ETimeZone,
                MaxAttendees    = model.MaxAttendees,
                Observers       = model.Observers,
                WhoCanAttend    = model.WhoCanAttend,
                Participants    = model.Participants,
                Picture         = model.Picture,
                IsActive        = true,
                IsSingleEvent   = model.IsSingleEvent
            };
            await _unitOfWork.UserCommunityLiveEventsRepository.Insert(dataModel);

            return(new BaseModel {
                Status = true, Id = dataModel.Id, Messsage = UMessagesInfo.RecordSaved
            });
        }
示例#2
0
        private async Task <bool> SaveCommunityGroupsThemeAsync(string themesId, UsersLoginDataModel user, CommunityGroupsDataModel communityGroupsData)
        {
            string[] themes = themesId.Split(',');
            var      communityGroupTheme = await _unitOfWork.UserCommunityGroupThemeRepository.FindAllBy(c => c.CommunityGroups == communityGroupsData);

            foreach (var themeItem in communityGroupTheme)
            {
                if (themes.Contains(themeItem.CommunityTargetedGroupId.ToString()) == false)
                {
                    themeItem.IsActive = false;
                }
                else
                {
                    themeItem.IsActive = true;
                    themes             = themes.Where(val => val != themeItem.CommunityTargetedGroupId.ToString()).ToArray();
                }
                await _unitOfWork.UserCommunityGroupThemeRepository.Update(themeItem);
            }
            foreach (var item in themes)
            {
                if (!string.IsNullOrEmpty(item))
                {
                    UserCommunityGroupThemeDataModel userCommunities = new UserCommunityGroupThemeDataModel();
                    userCommunities.User                     = user;
                    userCommunities.IsActive                 = true;
                    userCommunities.CommunityGroups          = communityGroupsData;
                    userCommunities.CommunityTargetedGroupId = Convert.ToInt32(item);
                    await _unitOfWork.UserCommunityGroupThemeRepository.Insert(userCommunities);
                }
                //Console.WriteLine(item);
            }
            themes = null;
            return(true);
        }
示例#3
0
        private async Task <bool> SaveCommunityTargetedType2Async(string type2Ids, UsersLoginDataModel user, CommunityGroupsDataModel communityGroupsData)
        {
            string[] type2s     = type2Ids.Split(',');
            var      targetData = await _unitOfWork.UserCommunityTargetedType2Repository.FindAllBy(c => c.CommunityGroups == communityGroupsData);

            foreach (var updateItem in targetData)
            {
                if (type2s.Contains(updateItem.TypeId.ToString()) == false)
                {
                    updateItem.IsActive = false;
                }
                else
                {
                    updateItem.IsActive = true;
                    type2s = type2s.Where(val => val != updateItem.TypeId.ToString()).ToArray();
                }
                await _unitOfWork.UserCommunityTargetedType2Repository.Update(updateItem);
            }

            foreach (var item in type2s)
            {
                if (!string.IsNullOrEmpty(item))
                {
                    UserCommunityTargetedType2DataModel type2 = new UserCommunityTargetedType2DataModel();
                    type2.User            = user;
                    type2.CommunityGroups = communityGroupsData;
                    type2.TypeId          = Convert.ToInt32(item);
                    type2.IsActive        = true;
                    await _unitOfWork.UserCommunityTargetedType2Repository.Insert(type2);
                }
                //Console.WriteLine(item);
            }
            type2s = null;
            return(true);
        }
示例#4
0
        private async Task <BaseModel> Save(ArticleViewModel model, UsersLoginDataModel user, CommunityGroupsDataModel communityGroupsData)
        {
            CommunityArticles dataModel = new CommunityArticles
            {
                CreatedBy       = model.UserId,
                User            = user,
                CommunityGroups = communityGroupsData,
                Title           = model.ArticleTitle,
                Description     = model.ArticleDescription,
                ShareDocUrl     = model.ShareDocument,
                IsActive        = true,
            };
            await _unitOfWork.UserCommunityArticlesRepository.Insert(dataModel);

            return(new BaseModel {
                Status = true, Id = dataModel.Id, Messsage = UMessagesInfo.RecordSaved
            });
        }
示例#5
0
        public async Task <BaseModel> SaveAsync(ArticleViewModel model, IFormFile articleShareDocument)
        {
            try
            {
                //save with attcahed doc
                BaseModel baseModel         = new BaseModel();
                string    articeDocUrl      = string.Empty;
                string    articleFolderPath = "ArcticlesShareDocuments/" + DateTime.Now.Year.ToString();
                string    articleFileName   = string.Empty;
                if (articleShareDocument != null && articleShareDocument.Length > 0)
                {
                    articleFileName     = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(articleShareDocument.FileName);
                    articeDocUrl        = articleFolderPath + "/" + articleFileName;
                    model.ShareDocument = articeDocUrl;
                }
                if (model.Id == 0)
                {
                    UsersLoginDataModel _user = await _unitOfWork.UserLoginRepository.GetByID(model.UserId);

                    CommunityGroupsDataModel communityGroupsData = await _unitOfWork.UserCommunityGroupsRepository.GetByID(model.CommunityGroupsId);

                    baseModel = await Save(model, _user, communityGroupsData);
                }
                else
                {
                    baseModel = await Update(model);
                }
                if (baseModel.Status == true)
                {
                    if (articleShareDocument != null && articleShareDocument.Length > 0)
                    {
                        await _awsS3Bucket.UploadFileAsync(articleFolderPath, articleShareDocument, articleFileName);
                    }
                }
                return(baseModel);
            }
            catch (Exception)
            {
                return(new BaseModel {
                    Status = false, Messsage = UMessagesInfo.Error
                });
            }
        }
        public async Task <bool> SaveCommunitiesAsync(string communitiesIds, UsersLoginDataModel model)
        {
            string[] communities = communitiesIds.Split(',');
            foreach (var item in communities)
            {
                if (!string.IsNullOrEmpty(item))
                {
                    UserCommunitiesDataModel userCommunities = new UserCommunitiesDataModel();
                    userCommunities.User        = model;
                    userCommunities.CommunityId = Convert.ToInt64(item);
                    userCommunities.IsActive    = true;

                    await _unitOfWork.UserCommunitiesRepository.Insert(userCommunities);
                }
                //Console.WriteLine(item);
            }
            communities = null;
            return(true);
        }
示例#7
0
        public async Task <BaseModel> SaveEventAsync(LiveEventViewModel model)
        {
            if (string.IsNullOrEmpty(model.ETime))
            {
                return(new BaseModel {
                    Status = false, Messsage = "Please set the event time."
                });
            }
            model.EName = model.ETitle;
            if (model.Id == 0)
            {
                UsersLoginDataModel _user = await _unitOfWork.UserLoginRepository.GetByID(model.UserId);

                CommunityGroupsDataModel communityGroupsData = await _unitOfWork.UserCommunityGroupsRepository.GetByID(model.CommunityGroupId);

                return(await Save(model, _user, communityGroupsData));
            }
            else
            {
                return(await Update(model));
            }
        }
        public async Task <bool> SaveAssociationsAsync(string associationsIds, UsersLoginDataModel user, CommunityDataModel community)
        {
            if (associationsIds == null)
            {
                return(false);
            }
            string[] interests          = associationsIds.Split(',');
            var      _selectedInterests = await _unitOfWork.UserAssociationsRepository.FindAllBy(c => c.User == user && c.Community == community);

            foreach (var updateItem in _selectedInterests)
            {
                if (interests.Contains(updateItem.AssociationId.ToString()) == false)
                {
                    updateItem.IsActive = false;
                }
                else
                {
                    updateItem.IsActive = true;
                    interests           = interests.Where(val => val != updateItem.AssociationId.ToString()).ToArray();
                }
                await _unitOfWork.UserAssociationsRepository.Update(updateItem);
            }
            foreach (var item in interests)
            {
                if (!string.IsNullOrEmpty(item) && item != "0")
                {
                    UserAssociationsDataModel userGroups = new UserAssociationsDataModel();
                    userGroups.User          = user;
                    userGroups.Community     = community;
                    userGroups.IsActive      = true;
                    userGroups.AssociationId = Convert.ToInt32(item);
                    await _unitOfWork.UserAssociationsRepository.Insert(userGroups);
                }
                //Console.WriteLine(item);
            }
            return(true);
        }
        public async Task <BaseModel> SendForgotPasswordLinkAsync(string UserName, string HtmlBody, string verificationActionPath)
        {
            IList <UsersLoginDataModel> users = await _unitOfWork.UserLoginRepository.FindAllBy(c => c.UserName.ToLower() == UserName);

            UsersLoginDataModel userData = users.FirstOrDefault();

            if (userData != null)
            {
                string token = Guid.NewGuid().ToString().Replace("-", "");
                RestPasswordLinkDataModel resetPasswordModel = new RestPasswordLinkDataModel {
                    IsRequestHasUsed        = false,
                    IsRequestToRestPassword = true,
                    User             = userData,
                    VerificationCode = token
                };
                var _data = await _unitOfWork.UserProfileRepository.FindAllBy(c => c.User.Id == userData.Id);

                if (_data != null)
                {
                    var resetPasswordExistingDetail = await _unitOfWork.RestPasswordLinkRepository.FindAllBy(c => c.User == userData);

                    RestPasswordLinkDataModel resetPasswordUpdateModel = resetPasswordExistingDetail.FirstOrDefault();
                    if (resetPasswordUpdateModel == null)
                    {
                        await _unitOfWork.RestPasswordLinkRepository.Insert(resetPasswordModel);
                    }
                    else
                    {
                        resetPasswordUpdateModel.IsRequestToRestPassword = true;
                        resetPasswordUpdateModel.IsRequestHasUsed        = false;
                        resetPasswordUpdateModel.VerificationCode        = token;
                        await _unitOfWork.RestPasswordLinkRepository.Update(resetPasswordUpdateModel);
                    }

                    string messageBody = string.Format(HtmlBody,
                                                       verificationActionPath + token,
                                                       _data.FirstOrDefault().FirstName + ' ' + _data.FirstOrDefault().LastName,
                                                       userData.UserName
                                                       );

                    await _emailSender.SendEmailAsync(
                        UMessagesInfo.ResetPasswordSubject,
                        messageBody,
                        userData.UserName,
                        _sphixConfiguration.SupportEmail,
                        UMessagesInfo.SphixSupport
                        );

                    return(new BaseModel {
                        Status = true, Messsage = UMessagesInfo.ResetPasswordLinkSentOnMail
                    });
                }

                return(new BaseModel {
                    Status = false, Messsage = UMessagesInfo.UserNameNotExist
                });
            }
            return(new BaseModel {
                Status = false, Messsage = UMessagesInfo.UserNameNotExist
            });
        }
 public JoinOpenHoursMeetingDataModel()
 {
     OpenOfficeHours = new CommunityOpenOfficeHours();
     User            = new UsersLoginDataModel();
     JoinDateTime    = DateTime.Now;
 }
示例#11
0
        private async Task <bool> SaveCommunityTargetedAssociationAsync(string associationIds, UsersLoginDataModel user, CommunityGroupsDataModel communityGroupsData)
        {
            string[] associations = associationIds.Split(',');
            var      targetData   = await _unitOfWork.UserCommunityTargetedAssociationsRepository.FindAllBy(c => c.CommunityGroups == communityGroupsData);

            foreach (var updateItem in targetData)
            {
                if (associations.Contains(updateItem.AssociationId.ToString()) == false)
                {
                    updateItem.IsActive = false;
                }
                else
                {
                    updateItem.IsActive = true;
                    associations        = associations.Where(val => val != updateItem.AssociationId.ToString()).ToArray();
                }
                await _unitOfWork.UserCommunityTargetedAssociationsRepository.Update(updateItem);
            }

            foreach (var item in associations)
            {
                if (!string.IsNullOrEmpty(item))
                {
                    UserCommunityTargetedAssociationsDataModel userAssociation = new UserCommunityTargetedAssociationsDataModel();
                    userAssociation.User            = user;
                    userAssociation.CommunityGroups = communityGroupsData;
                    userAssociation.AssociationId   = Convert.ToInt32(item);
                    userAssociation.IsActive        = true;
                    await _unitOfWork.UserCommunityTargetedAssociationsRepository.Insert(userAssociation);
                }
                //Console.WriteLine(item);
            }
            associations = null;
            return(true);
        }
        public async Task <BaseModel> SendEmailVerification(long Id, string HtmlBody, string verificationActionPath, string Name)
        {
            bool _actionStatus = false;
            UsersLoginDataModel usersLoginData = await _unitOfWork.UserLoginRepository.GetByID(Id);

            if (usersLoginData == null)
            {
                return(new BaseModel {
                    Status = false, Messsage = UMessagesInfo.WrongUserName
                });
            }
            string token = Guid.NewGuid().ToString().Replace("-", "");

            var _resultEmailVerification = await _unitOfWork.EmailVerificatioRepository.FindAllBy(c => c.User.Id == Id);

            if (_resultEmailVerification.Count != 0)
            {
                var emailVerificationUpdateModel = _resultEmailVerification.FirstOrDefault();
                emailVerificationUpdateModel.VerificationCode = token;
                emailVerificationUpdateModel.IsVerified       = false;
                await _unitOfWork.EmailVerificatioRepository.Update(emailVerificationUpdateModel);

                _actionStatus = true;
            }
            else
            {
                EmailVerificationDataModel emailVerificationModel = new EmailVerificationDataModel
                {
                    User             = usersLoginData,
                    EmailAddress     = usersLoginData.UserName,
                    IsVerified       = false,
                    VerificationCode = token
                };
                await _unitOfWork.EmailVerificatioRepository.Insert(emailVerificationModel);

                _actionStatus = true;
            }

            if (_actionStatus)
            {
                //active user profile on email verification
                usersLoginData.IsActive  = true;
                usersLoginData.UpdatedBy = Id;
                usersLoginData.CreatedBy = Id;
                await _unitOfWork.UserLoginRepository.Update(usersLoginData);

                //set user information in verification email message
                string messageBody = string.Format(HtmlBody,
                                                   verificationActionPath + token,
                                                   Name,
                                                   usersLoginData.UserName
                                                   );

                await _emailSender.SendEmailAsync(
                    UMessagesInfo.VerificationEmailSubject,
                    messageBody,
                    usersLoginData.UserName,
                    _sphixConfiguration.SupportEmail,
                    UMessagesInfo.SphixSupport
                    );

                return(new BaseModel {
                    Status = true, Messsage = UMessagesInfo.SignUpSuccess
                });
            }
            return(new BaseModel {
                Status = true, Messsage = UMessagesInfo.Error
            });
        }
示例#13
0
 public JoinCommunityGroupDataModel()
 {
     CommunityGroup = new CommunityGroupsDataModel();
     User           = new UsersLoginDataModel();
     JoinDateTime   = DateTime.Now;
 }
 public JoinEventMeetingDataModel()
 {
     LiveEvent    = new CommunityLiveEvents();
     User         = new UsersLoginDataModel();
     JoinDateTime = DateTime.Now;
 }
示例#15
0
        private async Task <bool> SaveCommunityTargetedInterestsAsync(string InterestsIds, UsersLoginDataModel user, CommunityGroupsDataModel communityGroupsData)
        {
            string[] interests  = InterestsIds.Split(',');
            var      targetData = await _unitOfWork.UserCommunityTargetedInterestRepository.FindAllBy(c => c.CommunityGroups == communityGroupsData);

            foreach (var updateItem in targetData)
            {
                if (interests.Contains(updateItem.InterestId.ToString()) == false)
                {
                    updateItem.IsActive = false;
                }
                else
                {
                    updateItem.IsActive = true;
                    interests           = interests.Where(val => val != updateItem.InterestId.ToString()).ToArray();
                }
                await _unitOfWork.UserCommunityTargetedInterestRepository.Update(updateItem);
            }

            foreach (var item in interests)
            {
                if (!string.IsNullOrEmpty(item))
                {
                    UserCommunityTargetedInterestsDataModel interest = new UserCommunityTargetedInterestsDataModel();
                    interest.User            = user;
                    interest.CommunityGroups = communityGroupsData;
                    interest.InterestId      = Convert.ToInt32(item);
                    interest.IsActive        = true;
                    await _unitOfWork.UserCommunityTargetedInterestRepository.Insert(interest);
                }
                //Console.WriteLine(item);
            }
            interests = null;
            return(true);
        }
示例#16
0
        public async Task <BaseModel> SignUpAsync(SignUpViewModel model)
        {
            var roleData = await _unitOfWork.RoleRepository.FindAllBy(c => c.RoleName.ToLower() == "user");

            if (roleData.Count == 0)
            {
                return(new BaseModel {
                    Status = false, Messsage = "no data for user role in role master table"
                });
            }
            model.Email = model.Email.ToLower().Trim();
            var existingUser = await _unitOfWork.UserLoginRepository.FindAllBy(c => c.UserName == model.Email);

            if (existingUser.Count > 0)
            {
                existingUser = null;
                return(new BaseModel {
                    Status = false, Messsage = String.Format(UMessagesInfo.UserNameExist, model.Email)
                });
            }
            else
            {
                string saltValue = Guid.NewGuid().ToString();
                string password  = UPasswordRijndaelAlgorithm.Encrypt(model.Password, saltValue, _settings.PassPhrase, _settings.HashAlgorithm, _settings.InitVector);
                UsersLoginDataModel userLoginData = new UsersLoginDataModel()
                {
                    Password     = password,
                    UserName     = model.Email,
                    PasswordSalt = saltValue,
                    AddedDate    = DateTime.Now,
                    IsActive     = false
                };
                var userData = await _unitOfWork.UserLoginRepository.Insert(userLoginData);

                await _unitOfWork.UsersRolesRepository.Insert(new UsersRolesDataModel { User = userData, Role = roleData.FirstOrDefault() });

                //string your_String = "[email protected](Hello)";
                string profileLink      = Regex.Replace((model.FirstName + model.LastName), @"[^0-9a-zA-Z]+", "").Replace(" ", "");
                var    profilelinkCheck = await _unitOfWork.UserProfileRepository.FindAllBy(c => c.ProfileLink == profileLink);

                if (profilelinkCheck.Count != 0)
                {
                    profilelinkCheck = await _unitOfWork.UserProfileRepository.FindAllBy(c => c.ProfileLink == profileLink + "S00" + userData.Id.ToString());

                    if (profilelinkCheck.Count != 0)
                    {
                        profileLink = Regex.Replace(Guid.NewGuid().ToString(), @"[^0-9a-zA-Z]+", "");
                    }
                    else
                    {
                        profileLink = profileLink + "S0" + userData.Id.ToString();
                    }
                }
                UsersProfileDataModel usersProfileData = new UsersProfileDataModel
                {
                    FirstName           = model.FirstName,
                    LastName            = model.LastName,
                    Email               = model.Email,
                    Phone               = model.PhoneNumber,
                    UseMyLocation       = model.UseMyLocation,
                    Latitude            = model.Latitude,
                    Longitude           = model.Longitude,
                    User                = userData,
                    IsCertifyTAndC      = model.IsCertifyTAndC,
                    IsFinanciallyActive = model.IsFinanciallyActive,
                    IsKickstartarActive = model.IsKickstartarActive,
                    AddedDate           = DateTime.Now,
                    ProfileLink         = profileLink
                };
                var profileData = await _unitOfWork.UserProfileRepository.Insert(usersProfileData);

                Int64 UserId = usersProfileData.User.Id;

                profileData.UpdatedBy = UserId;
                profileData.CreatedBy = UserId;
                await _unitOfWork.UserProfileRepository.Update(profileData);

                profileData = null;
                await _userCommunities.SaveCommunitiesAsync(model.CommunityId, userData);

                var _mainCommunity = await _unitOfWork.CommunityRepository.GetByID(Convert.ToInt32(model.CommunityId));

                if (_mainCommunity != null)
                {
                    await _userCommunities.SaveGroupsAsync(model.GroupId.ToString(), userData, _mainCommunity);

                    await _userCommunities.SaveAssociationsAsync(model.AssociationId.ToString(), userData, _mainCommunity);

                    //Save data into the Interests table
                    await _userCommunities.SaveInterestsAsync(model.InterestsId, userData, _mainCommunity);

                    //Save data into the community table like group,association
                    //UserSubCommunitiesDataModel userCommunities = new UserSubCommunitiesDataModel
                    //{
                    //    User = userData,
                    //    Association = model.AssociationId,
                    //    GroupId = model.GroupId,
                    //    Type1Id = model.Type1ListId,
                    //    Type2ListId = model.Type2ListId,
                    //    Community = _mainCommunity

                    //};
                    //await _userCommunities.SaveSubCommunitiesAsync(userCommunities);
                    //userCommunities = null;
                }


                userLoginData    = null;
                usersProfileData = null;
                _mainCommunity   = null;
                userData         = null;
                return(new BaseModel {
                    Id = UserId, Status = true, Messsage = UMessagesInfo.SignUpSuccess
                });
            }
        }
示例#17
0
        public async Task <UserClaimsViewModel> LoginAsync(LoginViewModel model)
        {
            IList <UsersLoginDataModel> users = await _unitOfWork.UserLoginRepository.FindAllBy(c => c.UserName.ToLower() == model.UserName);

            UsersLoginDataModel userData = users.FirstOrDefault();

            if (userData != null)
            {
                try
                {
                    string userPassword = UPasswordRijndaelAlgorithm.Decrypt(userData.Password, userData.PasswordSalt, _settings.PassPhrase, _settings.HashAlgorithm, _settings.InitVector);
                    if (model.Password.Equals(userPassword))
                    {
                        var _query  = _unitOfWork.UsersRolesRepository.FindAllByQuery(c => c.User == userData);
                        var _result = await _query.Include("Role").ToListAsync();

                        if (_result != null)
                        {
                            string roles = string.Empty;
                            foreach (var item in _result)
                            {
                                roles = roles + item.Role.RoleName;// + ",";
                            }
                            return(new UserClaimsViewModel {
                                Status = true, Id = userData.Id, UserName = userData.UserName, Roles = roles
                            });
                        }
                        else
                        {
                            return(new UserClaimsViewModel {
                                Status = false, Messsage = UMessagesInfo.WrongUserName
                            });
                        }
                    }
                    return(new UserClaimsViewModel {
                        Status = false, Messsage = UMessagesInfo.WrongUserName
                    });
                }
                catch (System.Exception ex)
                {
                    if (ex.Source == "System.Security.Cryptography.Algorithms")
                    {
                        //await _loggerService.AddAsync(new Sphix.DataModels.Logger.LoggerDataModel
                        //{
                        //    ErrorCode = "red",
                        //    Message = ex.Message,
                        //    Source = ex.Source,
                        //    Detail = ex.StackTrace
                        //});
                        return(new UserClaimsViewModel {
                            Status = false, Messsage = "System security settings have changed. Please reset your password!"
                        });
                    }
                    throw;
                }
            }
            else
            {
                return(new UserClaimsViewModel {
                    Status = false, Messsage = UMessagesInfo.UserNameNotExist
                });
            }
        }
 public GroupEmailInvitationDataModel()
 {
     LastUpdate     = DateTime.Now;
     SentByUser     = new UsersLoginDataModel();
     CommunityGroup = new CommunityGroupsDataModel();
 }
        /// <summary>
        /// Save and update data in Open Office Hours table
        /// </summary>
        /// <param name="model"></param>
        /// <param name="user">if user model is null then please pass UserId into the OpenOfficeHoursViewModel</param>
        /// <param name="communityGroupsData">if communityGroupsData model is null then please pass CommunityGroupId into the OpenOfficeHoursViewModel</param>
        /// <returns></returns>
        public async Task <BaseModel> SaveOpenHoursAsync(OpenOfficeHoursViewModel model, UsersLoginDataModel user, CommunityGroupsDataModel communityGroupsData)
        {
            if (user == null)
            {
                user = await _unitOfWork.UserLoginRepository.GetByID(model.UserId);
            }
            if (communityGroupsData == null)
            {
                communityGroupsData = await _unitOfWork.UserCommunityGroupsRepository.GetByID(model.CommunityGroupId);
            }
            if (model.Id == 0)
            {
                CommunityOpenOfficeHours dataModel = new CommunityOpenOfficeHours
                {
                    CreatedBy        = user.Id,
                    User             = user,
                    CommunityGroups  = communityGroupsData,
                    OTitle           = model.OTitle,
                    OName            = model.OName,
                    ODescription     = model.ODescription,
                    OFrequency       = model.OFrequency,
                    OFromDate        = model.OFromDate, // setDateFromDayName(model.OTimeDayName, model.OFromDate),
                    OToDate          = model.OFromDate, // setDateFromDayName(model.OTimeDayName, model.OFromDate),
                    OTime            = model.OTime,
                    OTimeDayName     = model.OTimeDayName,
                    OTimeZone        = model.OTimeZone,
                    MaxAttendees     = model.MaxAttendees,
                    WhoCanAttend     = model.WhoCanAttend,
                    IsActive         = true,
                    IsFirstMeeting   = model.IsFirstMeeting,
                    NextMeetingToken = model.NextMeetingToken,
                    LastSessionId    = model.LastSessionId,
                    AddHours         = model.AddHours
                };
                await _unitOfWork.UserCommunityOpenOfficeHoursRepository.Insert(dataModel);

                if (model.AddHours)
                {
                    await _context.LoadStoredProc("AddHoursInOpenOfficeHours")
                    .WithSqlParam("Id", dataModel.Id)
                    .ExecuteStoredProcAsync((handler) =>
                    {
                        // do something with your results.
                    });
                }
                return(new BaseModel {
                    Status = true, Id = dataModel.Id, Messsage = UMessagesInfo.RecordSaved
                });
            }
            else
            {
                var openOfficeHoursModel = await _unitOfWork.UserCommunityOpenOfficeHoursRepository.GetByID(model.Id);

                openOfficeHoursModel.OTitle       = model.OTitle;
                openOfficeHoursModel.OName        = model.OName;
                openOfficeHoursModel.ODescription = model.ODescription;
                openOfficeHoursModel.OFrequency   = model.OFrequency;
                if (openOfficeHoursModel.OTimeDayName.ToLower().Trim() != model.OTimeDayName.ToLower().Trim())
                {
                    openOfficeHoursModel.OFromDate = SphixHelper.setDateFromDayName(model.OTimeDayName, DateTime.Now.Date);
                    openOfficeHoursModel.OToDate   = openOfficeHoursModel.OFromDate;
                }
                else
                {
                    openOfficeHoursModel.OFromDate = model.OFromDate;// setDateFromDayName(model.OTimeDayName, model.OFromDate);
                    openOfficeHoursModel.OToDate   = openOfficeHoursModel.OFromDate;
                }
                openOfficeHoursModel.OTime        = model.OTime;
                openOfficeHoursModel.OTimeDayName = model.OTimeDayName;
                openOfficeHoursModel.OTimeZone    = model.OTimeZone;
                openOfficeHoursModel.MaxAttendees = model.MaxAttendees;
                openOfficeHoursModel.WhoCanAttend = model.WhoCanAttend;
                openOfficeHoursModel.IsActive     = true;
                //openOfficeHoursModel.AddHours = model.AddHours;
                //openOfficeHoursModel.IsFirstMeeting = model.IsFirstMeeting;
                await _unitOfWork.UserCommunityOpenOfficeHoursRepository.Update(openOfficeHoursModel);

                return(new BaseModel {
                    Status = true, Id = model.Id, Messsage = UMessagesInfo.RecordSaved
                });
            }
        }
示例#20
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
                });
            }
        }