Пример #1
0
        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);
        }