public async Task <int> SaveAsync(PhonebookRecordSaveRequest saveRequest) { var businessModel = businessModelGenerator.Generate(saveRequest); var id = await dao.SaveAsync(businessModel).ConfigureAwait(false); return(id); }
public void Generate_IfFormatted_TakeDigits() { var saveRequest = new PhonebookRecordSaveRequest { PhoneNumbers = new List <string> { "8 (123) 456-78-90" } }; var actual = generator.Generate(saveRequest); Assert.AreEqual("81234567890", actual.PhoneNumbers.FirstOrDefault()); }
public void Generate_IfDigitsOnly_TakeAll() { var saveRequest = new PhonebookRecordSaveRequest { PhoneNumbers = new List <string> { "123456789" } }; var actual = generator.Generate(saveRequest); Assert.AreEqual("123456789", actual.PhoneNumbers.FirstOrDefault()); }
public void Generate_IfManyWords_AllNames() { var saveRequest = new PhonebookRecordSaveRequest { Fullname = "Кристина Мария Фаустовна Агилера" }; var actual = generator.Generate(saveRequest); Assert.AreEqual("Кристина Мария", actual.Name); Assert.AreEqual("Фаустовна", actual.Patronymic); Assert.AreEqual("Агилера", actual.Surname); }
public void Generate_IfTwoWords_NameAndSurname() { var saveRequest = new PhonebookRecordSaveRequest { Fullname = "Джеймс Бонд" }; var actual = generator.Generate(saveRequest); Assert.AreEqual("Джеймс", actual.Name); Assert.AreEqual("Бонд", actual.Surname); Assert.IsNull(actual.Patronymic); }
public void Generate_IfOneWord_OnlyName() { var saveRequest = new PhonebookRecordSaveRequest { Fullname = "Бонд" }; var actual = generator.Generate(saveRequest); Assert.AreEqual(saveRequest.Fullname, actual.Surname); Assert.IsNull(actual.Name); Assert.IsNull(actual.Patronymic); }
public PhonebookRecord Generate(PhonebookRecordSaveRequest saveRequest) { var phoneNumbers = saveRequest.PhoneNumbers?.Select(x => ParseNumber(x)).ToList() ?? new List <string>(); char[] charSeparators = new char[] { ',', ' ', '.' }; var words = saveRequest.Fullname?.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries).ToList() ?? new List <string>(); if (words.Count <= 1) { return(new PhonebookRecord { Id = saveRequest.Id.GetValueOrDefault(0), Surname = words.FirstOrDefault(), PhoneNumbers = phoneNumbers }); } if (words.Count == 2) { return(new PhonebookRecord { Id = saveRequest.Id.GetValueOrDefault(0), Name = words.First(), Surname = words.Last(), PhoneNumbers = phoneNumbers }); } var surname = words.LastOrDefault(); words.Remove(surname); var patronymic = words.LastOrDefault(); words.Remove(patronymic); return(new PhonebookRecord { Id = saveRequest.Id.GetValueOrDefault(0), Name = string.Join(" ", words), Patronymic = patronymic, Surname = surname, PhoneNumbers = phoneNumbers }); }