public string AppointUserAsAdmin(CompanyTreatmentUsersModel model) { _subscriptionService.CheckSubscription(model.CompanyId); var repoComp = _contextManager.CreateRepositiry <ICompanyRepo>(); var company = repoComp.GetById(model.CompanyId); if (company == null) { throw new ValidationException("Company not found."); } var userError = "Something wrong with this email(s):"; foreach (string email in model.Email) { var repoUser = _contextManager.CreateRepositiry <IUserRepo>(); var user = repoUser.GetUserByEmail(email); if (!(user == null)) { var repo = _contextManager.CreateRepositiry <ICompanyUserLinkRepo>(); var companyUser = repo.GetRecordByCompanyAndUser(user.Id, model.CompanyId); if (!(companyUser == null)) { companyUser.UserCompanyRole = (int)Model.Enums.CompanyUserRoleEnum.Admin; _contextManager.Save(); var generateEmail = new GenerateEmailDto { UrlAdress = _urlAdress + "/company/" + model.CompanyId + "?", EmailMainText = "Congratulations, you are Admin of " + company.Name + "! Now you can invite people to the company and create events.", ObjectId = model.CompanyId, Subject = "Company" }; var emailModel = _generateEmailWrapper.GenerateEmail(generateEmail, user); _emailWrapper.SendEmail(emailModel); } else { userError = userError + " " + email; } } else { userError = userError + " " + email; } } if (userError == "Something wrong with this email:") { return("Users are successfully assigned"); } else { return(userError); } }
public IActionResult AppointUserAsAdmin(CompanyTreatmentUsersModel model) { try { var result = _service.AppointUserAsAdmin(model); return(Ok(result)); } catch (ValidationException ex) { return(BadRequest(ex.Message)); } }
public IActionResult InviteEmail(CompanyTreatmentUsersModel model) { try { _service.InviteUsersToCompany(model); return(Ok("Link to join the company is sent to emails")); } catch (ValidationException ex) { return(BadRequest(ex.Message)); } }
public void InviteUsersToCompany(CompanyTreatmentUsersModel model) { _subscriptionService.CheckSubscription(model.CompanyId); var repo = _contextManager.CreateRepositiry <ICompanyRepo>(); var company = repo.GetById(model.CompanyId); if (company == null) { throw new ValidationException("Company not found."); } var generateEmail = new GenerateEmailDto { UrlAdress = _urlAdress + "/company/" + model.CompanyId + "?", EmailMainText = "Invitation to the company, for confirmation follow the link", ObjectId = model.CompanyId, Subject = "Welcome to the Company" }; foreach (string email in model.Email) { EmailFunctionality(email, model.CompanyId, generateEmail); } }