public SupplierTenderQuantityTable SaveQuantityTableItems(long tableId, List <TenderQuantityItemDTO> lst, string tableName, long currentItemId, out long itemId) { itemId = 0; Name = tableName; if (QuantitiyItemsJson == null) { QuantitiyItemsJson = new SupplierTenderQuantityTableItemJson(); QuantitiyItemsJson.Create(); } bool ItemExists = QuantitiyItemsJson.SupplierTenderQuantityTableItems != null && QuantitiyItemsJson.SupplierTenderQuantityTableItems.Any(a => /*a.IsActive == true && a.SupplierTenderQuantityTableId == tableId && */ a.ItemNumber == currentItemId); var lastIndex = QuantitiyItemsJson.SupplierTenderQuantityTableItems.Any() ? QuantitiyItemsJson.SupplierTenderQuantityTableItems.OrderByDescending(t => t.ItemNumber).FirstOrDefault().ItemNumber : 0; foreach (var item in lst) { if (!ItemExists) { byte[] gb = Guid.NewGuid().ToByteArray(); long IId = BitConverter.ToInt64(gb, 0); var idExsit = QuantitiyItemsJson.SupplierTenderQuantityTableItems.Any(x => x.Id == IId); while (idExsit) { gb = Guid.NewGuid().ToByteArray(); IId = BitConverter.ToInt64(gb, 0); idExsit = QuantitiyItemsJson.SupplierTenderQuantityTableItems.Any(x => x.Id == IId); } QuantitiyItemsJson.SupplierTenderQuantityTableItems.Add(new SupplierTenderQuantityTableItem(IId, item.ColumnId, item.TenderFormHeaderId, item.TemplateId, item.Value, lastIndex + 1)); itemId = lastIndex + 1; } else { SupplierTenderQuantityTableItem QItem; if (item.Id != 0) { QItem = QuantitiyItemsJson.SupplierTenderQuantityTableItems.FirstOrDefault(q => q.Id == item.Id); } else { QItem = QuantitiyItemsJson.SupplierTenderQuantityTableItems.FirstOrDefault(q => q.ItemNumber == item.ItemNumber && q.ColumnId == item.ColumnId && q.TenderFormHeaderId == item.TenderFormHeaderId); } QItem.UpdateItems(item.ColumnId, item.TenderFormHeaderId, item.TemplateId, item.Value, currentItemId); } } if (tableId == 0) { EntityCreated(); QuantitiyItemsJson.Create(); } else { EntityUpdated(); QuantitiyItemsJson.Update(); } return(this); }
public TenderQuantityTableChanges SaveQuantityTableItems(long tableId, List <TenderQuantityItemDTO> lst, long currentItemId, out long itemId) { itemId = 0; bool ItemExists = QuantitiyItemsChangeJson != null && QuantitiyItemsChangeJson.TenderQuantityTableItemChanges != null && QuantitiyItemsChangeJson.TenderQuantityTableItemChanges.Any(a => /*a.IsActive == true && a.TenderQuantityTableChangesId == tableId &&*/ a.ItemNumber == currentItemId); var lastIndex = QuantitiyItemsChangeJson.TenderQuantityTableItemChanges /*.Where(a => a.IsActive == true && a.TenderQuantityTableChangesId == tableId)*/.Any() ? QuantitiyItemsChangeJson.TenderQuantityTableItemChanges/*.Where(a => a.IsActive == true && a.TenderQuantityTableChangesId == tableId)*/ .Max(a => a.ItemNumber) : 0; foreach (var item in lst) { byte[] gb = Guid.NewGuid().ToByteArray(); long IId = BitConverter.ToInt64(gb, 0); var idExsit = QuantitiyItemsChangeJson.TenderQuantityTableItemChanges.Any(x => x.Id == IId); while (idExsit) { gb = Guid.NewGuid().ToByteArray(); IId = BitConverter.ToInt64(gb, 0); idExsit = QuantitiyItemsChangeJson.TenderQuantityTableItemChanges.Any(x => x.Id == IId); } if (!ItemExists) { QuantitiyItemsChangeJson.TenderQuantityTableItemChanges.Add(new TenderQuantityTableItemChanges(IId, item.ColumnId, item.TenderFormHeaderId, item.TemplateId, item.ColumnName, item.Value, lastIndex + 1)); itemId = lastIndex + 1; } else { TenderQuantityTableItemChanges QItem; if (item.Id != 0) { QItem = QuantitiyItemsChangeJson.TenderQuantityTableItemChanges.FirstOrDefault(q => q.Id == item.Id); } else { QItem = QuantitiyItemsChangeJson.TenderQuantityTableItemChanges.FirstOrDefault(q => q.ItemNumber == item.ItemNumber && q.ColumnId == item.ColumnId && q.TenderFormHeaderId == item.TenderFormHeaderId); } if (QItem != null) { QItem.UpdateItems(item.ColumnId, item.TenderFormHeaderId, item.TemplateId, item.ColumnName, item.Value, currentItemId); } } } if (tableId == 0) { EntityCreated(); QuantitiyItemsChangeJson.SetAddedState(); } else { EntityUpdated(); QuantitiyItemsChangeJson.SetUpdateState(); } return(this); }