public bool UpdateCompany(Guid id, CompanyPostDto company) { var existCompany = Session.Query <Company>().Where(c => c.Id == id).FirstOrDefault(); if (existCompany == null) { return(false); } try { using (var transaction = Session.BeginTransaction()) { Session.Delete(existCompany); transaction.Commit(); } var output = RegisterCompany(company, existCompany.AccessCode); return(true); } catch (Exception e) { using (var transaction = Session.BeginTransaction()) { Session.Save(existCompany); transaction.Commit(); return(false); } } }
public async Task <Result <CompanyDto> > CreateCompanyAsync(CompanyPostDto company) { var result = await _companyRepository.CreateCompanyAsync(company); var mappedResult = new CompanyDto { Id = result.Value.Id, Name = result.Value.Name, PhoneNumber = result.Value.PhoneNumber, Address = result.Value.Address }; return(Result.Ok(mappedResult)); }
public IHttpActionResult Post(CompanyPostDto persons) { using (var helper = new DataBaseHelper()) { var accessCode = $"{persons.Persons[0].FirstName.Substring(0, 2)}{persons.Persons[0].LastName.Substring(0, 2)}"; while (helper.IsAccessCodeExist(accessCode)) { var random = new Random(); accessCode += random.Next(10); } var id = helper.RegisterCompany(persons, accessCode); var emails = new List <string>(); persons.Persons.ForEach(x => emails.Add(x.Email)); var going = false; persons.Persons.ForEach(x => { if (x.Going) { going = true; } }); var goingTextSwe = going ? $"Vad roligt det ska bli att se {GetAckusativePronoun(persons.Persons.Count)}" : $"Vad synd att {GetPronoun(persons.Persons.Count)} inte kan komma"; var goingTextEng = going ? "It's nice to know you'll be at the" : "Too bad too hear you cannot attend our"; var byeTextSwe = going ? "Vi ses på bröllopet!" : "Ha det bra!"; var byeTextEng = going ? "See you at the wedding!" : "Cheers!"; using (var mailManager = new MailManager.MailManager("smtp.gmail.com", 587, _secretContainer.UserName, _secretContainer.UserName, _secretContainer.Password)) { var text = $"==> English below\n\nHej {FormatGuestList(persons.Persons)}!\n\n{goingTextSwe} " + $"på vårt bröllop! Håll gärna koll på hemsidan framöver, för där kommer all nödvändig information att vara med. Tveka inte " + $"att höra av {GetAckusativePronoun(persons.Persons.Count)} om det är något {GetPronoun(persons.Persons.Count)} undrar över!\n\nOm " + $"{GetPronoun(persons.Persons.Count)} vill redigera {GetPossessivePronoun(persons.Persons.Count)} anmälan, kan " + $"{GetPronoun(persons.Persons.Count)} göra det genom att gå in på anmälningssidan hos hemsidan och där trycka " + $"\"redigera anmälning\". Där fyller {GetPronoun(persons.Persons.Count)} i koden {accessCode} och trycker enter.\n\n" + $"{byeTextSwe}\n\nJohanna och Andreas\n\n\n\n\n\n\n\n\n======================\n\n\n\n\n\n\n\n\n" + $"Dear {FormatGuestList(persons.Persons)},\n\n{goingTextEng} " + $"wedding! Please keep an eye at the website, we will post all necessary information there. Don't hesitate to contact" + $" us if there is anything that is unclear.\n\nYou can edit the registration by going to the registration page at the " + $"website and select 'edit'. There you fill the code {accessCode} and press enter to edit\n\n" + $"{byeTextEng}\n\nJohanna and Andreas"; mailManager.SendMail(emails, "Välkommen på bröllop!", text); string textToUs = GenerateTextToUs(persons); mailManager.SendMail(new List <string> { _secretContainer.UserName }, "Ny anmälan", textToUs); } return(Ok(accessCode)); } }
private string GenerateTextToUs(CompanyPostDto persons) { var guestList = ""; foreach (var guest in persons.Persons) { guestList += $"{guest.FirstName}: \n"; guestList += $"Kommer: "; guestList += guest.Going ? "Ja\n" : "Nej\n"; guest.FoodPreferences.ForEach(f => guestList += $"{f.SwedishName} "); guestList += $"E-post: {guest.Email}\n"; guestList += $"Telefon: {guest.Phone}\n\n\n"; } var textToUs = $"Anmälan har kommit in\n\n Gäster: {FormatGuestList(persons.Persons)}\n\n" + guestList; return(textToUs); }
public async Task <Result <CompanyDto> > CreateCompanyAsync(CompanyPostDto company) { var response = await _crmRetryPolicy.ExecuteAsync(() => HttpClient.PostAsync(ServiceNameTypes.CrmService.ToString(), _apiTargetResource, BaseUrl, new JsonContent(company))); if (response.IsSuccessStatusCode) { var projectsServiceResponse = await response.ReadAsAsync <CompanyDto>(); return(Result.Ok(projectsServiceResponse)); } //await HttpResponseExtensionMethods.ThrowIfClientErrorAsync(response); //await HttpResponseExtensionMethods.LogHttpResponseAsync(response, Logger); var errorMessage = await response.Content.ReadAsStringAsync(); return(Result.Fail <CompanyDto>(errorMessage)); }
public IHttpActionResult Put(Guid id, CompanyPostDto company) { using (var helper = new DataBaseHelper()) { bool success = helper.UpdateCompany(id, company); if (success) { using (var mailManager = new MailManager.MailManager("smtp.gmail.com", 587, _secretContainer.UserName, _secretContainer.UserName, _secretContainer.Password)) { var text = $"Hej {FormatGuestList(company.Persons)}!\n\n{GetPossessivePronoun(company.Persons.Count, true)} anmälan är uppdaterad. Vi ses på bröllopet!\n\nVarma hälsningar,\n" + $"Johanna och Andreas"; mailManager.SendMail(company.Persons.Select(c => c.Email), "Bröllopsanmälan är uppdaterad", text); var textToUs = GenerateTextToUs(company); mailManager.SendMail(new List <string> { _secretContainer.UserName }, "Anmälan har uppdaterats", textToUs); } return(Ok()); } return(BadRequest()); } }
public Guid RegisterCompany(CompanyPostDto company, string accessCode) { Company newCompany = new Company(); newCompany = new Company { Comment = company.Comment, AccessCode = accessCode }; using (var companyTransaction = Session.BeginTransaction()) { Session.Save(newCompany); companyTransaction.Commit(); } foreach (var person in company.Persons) { var newPerson = new Person { FirstName = person.FirstName, LastName = person.LastName, Phone = person.Phone, Email = person.Email, FoodPreferences = new List <FoodPreference>(), Going = person.Going, Company = newCompany }; if (person.FoodPreferences != null) { foreach (var foodPreference in person.FoodPreferences) { Guid foodPreferenceId; var foodPreferenceQuery = Session.Query <FoodPreference>().Where(f => (f.SwedishName.ToLower() == foodPreference.SwedishName.ToLower() && !string.IsNullOrWhiteSpace(foodPreference.SwedishName)) || (f.EnglishName.ToLower() == foodPreference.EnglishName.ToLower() && !string.IsNullOrWhiteSpace(foodPreference.EnglishName))); if (foodPreferenceQuery.Any()) { foodPreferenceId = foodPreferenceQuery.First().Id; } else { var newFoodPreference = new FoodPreference { SwedishName = foodPreference.SwedishName, EnglishName = foodPreference.EnglishName }; using (var foodPreferenceTransaction = Session.BeginTransaction()) { Session.Save(newFoodPreference); foodPreferenceTransaction.Commit(); } foodPreferenceId = newFoodPreference.Id; } newPerson.FoodPreferences.Add(new FoodPreference { Id = foodPreferenceId }); } } using (var personTransaction = Session.BeginTransaction()) { Session.Save(newPerson); personTransaction.Commit(); } } return(newCompany.Id); }
public async Task <IActionResult> Post([FromBody] CompanyPostDto company) { var result = await _companyService.CreateCompanyAsync(company); return(Ok(result.Value)); }