public static List <PhonebookViewModel> ConvertToPhonebookViewModelList(this IEnumerable <Phonebook> Phonebooks) { List <PhonebookViewModel> PhonebookViewModels = new List <PhonebookViewModel>(); foreach (Phonebook Phonebook in Phonebooks) { PhonebookViewModels.Add(Phonebook.ConvertToPhonebookViewModel()); } return(PhonebookViewModels); }
public PhonebookResponse Create(PhonebookViewModel re) { PhonebookResponse response = new PhonebookResponse(); try { // Backup notes List <PhonebookNoteViewModel> PhonebookNotes = re.PhonebookNotes?.ToList(); re.PhonebookNotes = null; // Backup documents List <PhonebookDocumentViewModel> PhonebookDocuments = re.PhonebookDocuments?.ToList(); re.PhonebookDocuments = null; // Backup phone List <PhonebookPhoneViewModel> PhonebookPhones = re.PhonebookPhones?.ToList(); re.PhonebookPhones = null; Phonebook createdPhonebook = unitOfWork.GetPhonebookRepository().Create(re.ConvertToPhonebook()); // Update notes if (PhonebookNotes != null && PhonebookNotes.Count > 0) { // Items for create or update foreach (var PhonebookNote in PhonebookNotes .Where(x => x.ItemStatus == ItemStatus.Added || x.ItemStatus == ItemStatus.Edited)?.ToList() ?? new List <PhonebookNoteViewModel>()) { PhonebookNote.Phonebook = new PhonebookViewModel() { Id = createdPhonebook.Id }; PhonebookNote.ItemStatus = ItemStatus.Submited; PhonebookNote createdPhonebookNote = unitOfWork.GetPhonebookNoteRepository() .Create(PhonebookNote.ConvertToPhonebookNote()); } foreach (var item in PhonebookNotes .Where(x => x.ItemStatus == ItemStatus.Deleted)?.ToList() ?? new List <PhonebookNoteViewModel>()) { item.Phonebook = new PhonebookViewModel() { Id = createdPhonebook.Id }; unitOfWork.GetPhonebookNoteRepository().Create(item.ConvertToPhonebookNote()); unitOfWork.GetPhonebookNoteRepository().Delete(item.Identifier); } } // Update documents if (PhonebookDocuments != null && PhonebookDocuments.Count > 0) { // Items for create or update foreach (var PhonebookDocument in PhonebookDocuments .Where(x => x.ItemStatus == ItemStatus.Added || x.ItemStatus == ItemStatus.Edited)?.ToList() ?? new List <PhonebookDocumentViewModel>()) { PhonebookDocument.Phonebook = new PhonebookViewModel() { Id = createdPhonebook.Id }; PhonebookDocument.ItemStatus = ItemStatus.Submited; PhonebookDocument createdPhonebookDocument = unitOfWork.GetPhonebookDocumentRepository() .Create(PhonebookDocument.ConvertToPhonebookDocument()); } foreach (var item in PhonebookDocuments .Where(x => x.ItemStatus == ItemStatus.Deleted)?.ToList() ?? new List <PhonebookDocumentViewModel>()) { item.Phonebook = new PhonebookViewModel() { Id = createdPhonebook.Id }; unitOfWork.GetPhonebookDocumentRepository().Create(item.ConvertToPhonebookDocument()); unitOfWork.GetPhonebookDocumentRepository().Delete(item.Identifier); } } // Update Phones if (PhonebookPhones != null && PhonebookPhones.Count > 0) { // Items for create or update foreach (var PhonebookPhone in PhonebookPhones .Where(x => x.ItemStatus == ItemStatus.Added || x.ItemStatus == ItemStatus.Edited)?.ToList() ?? new List <PhonebookPhoneViewModel>()) { PhonebookPhone.Phonebook = new PhonebookViewModel() { Id = createdPhonebook.Id }; PhonebookPhone.ItemStatus = ItemStatus.Submited; PhonebookPhone createdPhonebookPhone = unitOfWork.GetPhonebookPhoneRepository() .Create(PhonebookPhone.ConvertToPhonebookPhone()); } foreach (var item in PhonebookPhones .Where(x => x.ItemStatus == ItemStatus.Deleted)?.ToList() ?? new List <PhonebookPhoneViewModel>()) { item.Phonebook = new PhonebookViewModel() { Id = createdPhonebook.Id }; unitOfWork.GetPhonebookPhoneRepository().Create(item.ConvertToPhonebookPhone()); unitOfWork.GetPhonebookPhoneRepository().Delete(item.Identifier); } } unitOfWork.Save(); response.Phonebook = createdPhonebook.ConvertToPhonebookViewModel(); response.Success = true; } catch (Exception ex) { response.Phonebook = new PhonebookViewModel(); response.Success = false; response.Message = ex.Message; } return(response); }