public string JoinEventViaLink(int EventId, string email, string Code) { var repo = _contextManager.CreateRepositiry <IEventRepo>(); var eventRecord = repo.GetById(EventId); _subscriptionService.CheckSubscription(eventRecord.CompanyId); if (eventRecord == null) { throw new ValidationException("Event not found"); } var repoUser = _contextManager.CreateRepositiry <IUserRepo>(); var user = repoUser.GetUserByEmail(email); if (user == null) { throw new ValidationException("User not found"); } string hashUrl = "{" + GetHashString(secretKey + eventRecord.Name) + "}"; if (Code == hashUrl) { var repoCompUser = _contextManager.CreateRepositiry <ICompanyUserLinkRepo>(); var companyUser = repoCompUser.GetRecordByCompanyAndUser(user.Id, EventId); if (!(companyUser == null)) { throw new ValidationException("User is already added to the event."); } var entity = new CompanyUserLink { CompanyId = EventId, UserId = user.Id, UserCompanyRole = (int)Model.Enums.EventUserRoleEnum.User }; repoCompUser.Add(entity); _contextManager.Save(); return("You are join the event"); } else { return("Sorry, unexpected error"); } }
public CompanyDto CreateCompany(CompanyCreateDto dto) { var repoUser = _contextManager.CreateRepositiry <IUserRepo>(); var user = repoUser.GetById(dto.UserId); var repoCompany = _contextManager.CreateRepositiry <ICompanyRepo>(); var company = repoCompany.GetCompanyByName(dto.Name); if (!(company == null)) { throw new ValidationException("Company with name <" + dto.Name + "> is already exists."); } var entity = _mapper.Map <Company>(dto); repoCompany.Add(entity); _contextManager.Save(); var repoCompUser = _contextManager.CreateRepositiry <ICompanyUserLinkRepo>(); var companyUser = new CompanyUserLink { CompanyId = entity.Id, UserId = user.Id, UserCompanyRole = (int)Model.Enums.CompanyUserRoleEnum.Owner }; repoCompUser.Add(companyUser); _contextManager.Save(); var repoCompSub = _contextManager.CreateRepositiry <ICompanySubRepo>(); var companySub = new CompanySubscription { CompanyId = entity.Id, UserId = user.Id, SubEndDt = DateTime.UtcNow.Date, UseTrialVersion = (int)Model.Enums.CompanyTrialVersionEnum.ReadyToUseTrial }; repoCompSub.Add(companySub); _contextManager.Save(); return(_mapper.Map <CompanyDto>(entity)); }
public string AcceptInvitation(int companyId, string Email) { _subscriptionService.CheckSubscription(companyId); var repoUser = _contextManager.CreateRepositiry <IUserRepo>(); var user = repoUser.GetUserByEmail(Email); if (user == null) { throw new ValidationException("User not found."); } var repoCompany = _contextManager.CreateRepositiry <ICompanyRepo>(); var company = repoCompany.GetById(companyId); if (company == null) { throw new ValidationException("Company not found."); } var repoCompUser = _contextManager.CreateRepositiry <ICompanyUserLinkRepo>(); var companyUser = repoCompUser.GetRecordByCompanyAndUser(user.Id, companyId); if (!(companyUser == null)) { throw new ValidationException("User is already added to the company."); } var entity = new CompanyUserLink { CompanyId = companyId, UserId = user.Id, UserCompanyRole = (int)Model.Enums.CompanyUserRoleEnum.User }; repoCompUser.Add(entity); _contextManager.Save(); return("You successfully join the Company"); }