public InputInvoiceDocument Create(InputInvoiceDocument InputInvoiceDocument) { if (context.InputInvoiceDocuments.Where(x => x.Identifier != null && x.Identifier == InputInvoiceDocument.Identifier).Count() == 0) { InputInvoiceDocument.Id = 0; InputInvoiceDocument.Active = true; InputInvoiceDocument.UpdatedAt = DateTime.Now; InputInvoiceDocument.CreatedAt = DateTime.Now; context.InputInvoiceDocuments.Add(InputInvoiceDocument); return(InputInvoiceDocument); } else { // Load item that will be updated InputInvoiceDocument dbEntry = context.InputInvoiceDocuments .FirstOrDefault(x => x.Identifier == InputInvoiceDocument.Identifier && x.Active == true); if (dbEntry != null) { dbEntry.CompanyId = InputInvoiceDocument.CompanyId ?? null; dbEntry.CreatedById = InputInvoiceDocument.CreatedById ?? null; dbEntry.InputInvoiceId = InputInvoiceDocument.InputInvoiceId ?? null; // Set properties dbEntry.Name = InputInvoiceDocument.Name; dbEntry.CreateDate = InputInvoiceDocument.CreateDate; dbEntry.Path = InputInvoiceDocument.Path; dbEntry.ItemStatus = InputInvoiceDocument.ItemStatus; // Set timestamp dbEntry.UpdatedAt = DateTime.Now; } return(dbEntry); } }
public static List <InputInvoiceDocumentViewModel> ConvertToInputInvoiceDocumentViewModelList(this IEnumerable <InputInvoiceDocument> inputInvoiceDocuments) { List <InputInvoiceDocumentViewModel> InputInvoiceDocumentViewModels = new List <InputInvoiceDocumentViewModel>(); foreach (InputInvoiceDocument InputInvoiceDocument in inputInvoiceDocuments) { InputInvoiceDocumentViewModels.Add(InputInvoiceDocument.ConvertToInputInvoiceDocumentViewModel()); } return(InputInvoiceDocumentViewModels); }
public InputInvoiceDocument Delete(Guid identifier) { InputInvoiceDocument dbEntry = context.InputInvoiceDocuments .Union(context.ChangeTracker.Entries() .Where(x => x.State == EntityState.Added && x.Entity.GetType() == typeof(InputInvoiceDocument)) .Select(x => x.Entity as InputInvoiceDocument)) .FirstOrDefault(x => x.Identifier == identifier && x.Active == true); if (dbEntry != null) { dbEntry.Active = false; dbEntry.UpdatedAt = DateTime.Now; } return(dbEntry); }
public static InputInvoiceDocument ConvertToInputInvoiceDocument(this InputInvoiceDocumentViewModel inputInvoiceDocumentViewModel) { InputInvoiceDocument InputInvoiceDocument = new InputInvoiceDocument() { Id = inputInvoiceDocumentViewModel.Id, Identifier = inputInvoiceDocumentViewModel.Identifier, InputInvoiceId = inputInvoiceDocumentViewModel.InputInvoice?.Id ?? null, Name = inputInvoiceDocumentViewModel.Name, CreateDate = inputInvoiceDocumentViewModel.CreateDate, Path = inputInvoiceDocumentViewModel.Path, ItemStatus = inputInvoiceDocumentViewModel.ItemStatus, Active = inputInvoiceDocumentViewModel.IsActive, CreatedById = inputInvoiceDocumentViewModel.CreatedBy?.Id ?? null, CompanyId = inputInvoiceDocumentViewModel.Company?.Id ?? null, CreatedAt = inputInvoiceDocumentViewModel.CreatedAt, UpdatedAt = inputInvoiceDocumentViewModel.UpdatedAt }; return(InputInvoiceDocument); }
public static InputInvoiceDocumentViewModel ConvertToInputInvoiceDocumentViewModelLite(this InputInvoiceDocument inputInvoiceDocument) { InputInvoiceDocumentViewModel InputInvoiceDocumentViewModel = new InputInvoiceDocumentViewModel() { Id = inputInvoiceDocument.Id, Identifier = inputInvoiceDocument.Identifier, Name = inputInvoiceDocument.Name, CreateDate = inputInvoiceDocument.CreateDate, Path = inputInvoiceDocument.Path, ItemStatus = inputInvoiceDocument.ItemStatus, IsActive = inputInvoiceDocument.Active, UpdatedAt = inputInvoiceDocument.UpdatedAt, CreatedAt = inputInvoiceDocument.CreatedAt }; return(InputInvoiceDocumentViewModel); }
public List <InputInvoiceDocument> GetInputInvoiceDocuments(int companyId) { List <InputInvoiceDocument> InputInvoiceDocuments = new List <InputInvoiceDocument>(); string queryString = "SELECT InputInvoiceDocumentId, InputInvoiceDocumentIdentifier, " + "InputInvoiceId, InputInvoiceIdentifier, InputInvoiceCode, " + "Name, CreateDate, Path, ItemStatus, " + "Active, UpdatedAt, CreatedById, CreatedByFirstName, CreatedByLastName, " + "CompanyId, CompanyName " + "FROM vInputInvoiceDocuments " + "WHERE CompanyId = @CompanyId AND Active = 1;"; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; command.Parameters.Add(new SqlParameter("@CompanyId", companyId)); connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { InputInvoiceDocument inputInvoiceDocument; while (reader.Read()) { inputInvoiceDocument = new InputInvoiceDocument(); inputInvoiceDocument.Id = Int32.Parse(reader["InputInvoiceDocumentId"].ToString()); inputInvoiceDocument.Identifier = Guid.Parse(reader["InputInvoiceDocumentIdentifier"].ToString()); if (reader["InputInvoiceId"] != DBNull.Value) { inputInvoiceDocument.InputInvoice = new InputInvoice(); inputInvoiceDocument.InputInvoiceId = Int32.Parse(reader["InputInvoiceId"].ToString()); inputInvoiceDocument.InputInvoice.Id = Int32.Parse(reader["InputInvoiceId"].ToString()); inputInvoiceDocument.InputInvoice.Identifier = Guid.Parse(reader["InputInvoiceIdentifier"].ToString()); inputInvoiceDocument.InputInvoice.Code = reader["InputInvoiceCode"].ToString(); } if (reader["Name"] != DBNull.Value) { inputInvoiceDocument.Name = reader["Name"].ToString(); } if (reader["CreateDate"] != DBNull.Value) { inputInvoiceDocument.CreateDate = DateTime.Parse(reader["CreateDate"].ToString()); } if (reader["Path"] != DBNull.Value) { inputInvoiceDocument.Path = reader["Path"].ToString(); } if (reader["ItemStatus"] != DBNull.Value) { inputInvoiceDocument.ItemStatus = Int32.Parse(reader["ItemStatus"].ToString()); } inputInvoiceDocument.Active = bool.Parse(reader["Active"].ToString()); inputInvoiceDocument.UpdatedAt = DateTime.Parse(reader["UpdatedAt"].ToString()); if (reader["CreatedById"] != DBNull.Value) { inputInvoiceDocument.CreatedBy = new User(); inputInvoiceDocument.CreatedById = Int32.Parse(reader["CreatedById"].ToString()); inputInvoiceDocument.CreatedBy.Id = Int32.Parse(reader["CreatedById"].ToString()); inputInvoiceDocument.CreatedBy.FirstName = reader["CreatedByFirstName"]?.ToString(); inputInvoiceDocument.CreatedBy.LastName = reader["CreatedByLastName"]?.ToString(); } if (reader["CompanyId"] != DBNull.Value) { inputInvoiceDocument.Company = new Company(); inputInvoiceDocument.CompanyId = Int32.Parse(reader["CompanyId"].ToString()); inputInvoiceDocument.Company.Id = Int32.Parse(reader["CompanyId"].ToString()); inputInvoiceDocument.Company.Name = reader["CompanyName"].ToString(); } InputInvoiceDocuments.Add(inputInvoiceDocument); } } } return(InputInvoiceDocuments); }
public InputInvoiceResponse Create(InputInvoiceViewModel re) { InputInvoiceResponse response = new InputInvoiceResponse(); try { // Backup notes List <InputInvoiceNoteViewModel> inputInvoiceNotes = re.InputInvoiceNotes?.ToList(); re.InputInvoiceNotes = null; // Backup documents List <InputInvoiceDocumentViewModel> inputInvoiceDocuments = re.InputInvoiceDocuments?.ToList(); re.InputInvoiceDocuments = null; InputInvoice createdInputInvoice = unitOfWork.GetInputInvoiceRepository().Create(re.ConvertToInputInvoice()); // Update notes if (inputInvoiceNotes != null && inputInvoiceNotes.Count > 0) { // Items for create or update foreach (var inputInvoiceNote in inputInvoiceNotes .Where(x => x.ItemStatus == ItemStatus.Added || x.ItemStatus == ItemStatus.Edited)?.ToList() ?? new List <InputInvoiceNoteViewModel>()) { inputInvoiceNote.InputInvoice = new InputInvoiceViewModel() { Id = createdInputInvoice.Id }; inputInvoiceNote.ItemStatus = ItemStatus.Submited; InputInvoiceNote createdInputInvoiceNote = unitOfWork.GetInputInvoiceNoteRepository() .Create(inputInvoiceNote.ConvertToInputInvoiceNote()); } foreach (var item in inputInvoiceNotes .Where(x => x.ItemStatus == ItemStatus.Deleted)?.ToList() ?? new List <InputInvoiceNoteViewModel>()) { item.InputInvoice = new InputInvoiceViewModel() { Id = createdInputInvoice.Id }; unitOfWork.GetInputInvoiceNoteRepository().Create(item.ConvertToInputInvoiceNote()); unitOfWork.GetInputInvoiceNoteRepository().Delete(item.Identifier); } } // Update documents if (inputInvoiceDocuments != null && inputInvoiceDocuments.Count > 0) { // Items for create or update foreach (var inputInvoiceDocument in inputInvoiceDocuments .Where(x => x.ItemStatus == ItemStatus.Added || x.ItemStatus == ItemStatus.Edited)?.ToList() ?? new List <InputInvoiceDocumentViewModel>()) { inputInvoiceDocument.InputInvoice = new InputInvoiceViewModel() { Id = createdInputInvoice.Id }; inputInvoiceDocument.ItemStatus = ItemStatus.Submited; InputInvoiceDocument createdInputInvoiceDocument = unitOfWork.GetInputInvoiceDocumentRepository() .Create(inputInvoiceDocument.ConvertToInputInvoiceDocument()); } foreach (var item in inputInvoiceDocuments .Where(x => x.ItemStatus == ItemStatus.Deleted)?.ToList() ?? new List <InputInvoiceDocumentViewModel>()) { item.InputInvoice = new InputInvoiceViewModel() { Id = createdInputInvoice.Id }; unitOfWork.GetInputInvoiceDocumentRepository().Create(item.ConvertToInputInvoiceDocument()); unitOfWork.GetInputInvoiceDocumentRepository().Delete(item.Identifier); } } unitOfWork.Save(); response.InputInvoice = createdInputInvoice.ConvertToInputInvoiceViewModel(); response.Success = true; } catch (Exception ex) { response.InputInvoice = new InputInvoiceViewModel(); response.Success = false; response.Message = ex.Message; } return(response); }