Esempio n. 1
0
        private void CargoStorageByTypeVM_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            if (e.Action == NotifyCollectionChangedAction.Add)
            {
                foreach (var item in e.NewItems)
                {
                    KeyValuePair <Entity, PrIwObsList <Entity> > kvp = (KeyValuePair <Entity, PrIwObsList <Entity> >)item;
                    ComponentSpecificDesignVM design = new ComponentSpecificDesignVM(kvp.Key, kvp.Value);
                    DesignStore.Add(design);
                }
            }
            else if (e.Action == NotifyCollectionChangedAction.Remove)
            {
                foreach (var item in e.OldItems)
                {
                    Entity key = (Entity)item;
                    foreach (var vmitem in DesignStore.ToArray())
                    {
                        if (vmitem.EntityID == key.Guid)
                        {
                            DesignStore.Remove(vmitem);
                            break;
                        }
                    }
                }
            }


            OnPropertyChanged(nameof(HasComponents));
        }
Esempio n. 2
0
 private void InitEntities()
 {
     foreach (var item in _storageDB.StoredEntities[TypeID])
     {
         ComponentSpecificDesignVM design = new ComponentSpecificDesignVM(item.Key, item.Value);
         DesignStore.Add(design);
     }
     _storageDB.StoredEntities[TypeID].CollectionChanged += CargoStorageByTypeVM_CollectionChanged;
     OnPropertyChanged(nameof(HasComponents));
 }
Esempio n. 3
0
        public async Task <IActionResult> CreateOrderItem([FromServices] DesignStore designStore, ProductDetailViewModel itemOrdered, IFormFile fileUpload, Int16 quantity)
        {
//            TODO: serverside validate quantity
            itemOrdered.Item.Quantity = quantity;
//            Processing determined by user radio button selection of Design Options
            if (itemOrdered.DesignOption == "designFile")
            {
//               TODO: add validation for file upload
                if (fileUpload != null)
                {
                    using (var stream = fileUpload.OpenReadStream())
                    {
                        var fileUrl = await designStore.SaveFile(stream);

                        itemOrdered.Item.ItemFile = fileUrl;
                    }
                }
            }

//            if customer chose template option, capture the data, validate and save to order item
            if (itemOrdered.DesignOption == "designTemplate")
            {
                List <TemplateData> templateDataList = new List <TemplateData>();
                foreach (Field field in itemOrdered.Detail.TemplateFields.Fieldlist.Field)
                {
//                    TODO: add simplied template object into ProductDetailsViewModel
//                    TODO: perform validation on fields
                    TemplateData data = new TemplateData
                    {
                        TemplateDataName  = field.Htmlfieldname,
                        TemplateDataValue = field.Fieldname
                    };
                    templateDataList.Add(data);
                }
                itemOrdered.Item.TemplateData = templateDataList;
            }
//            TODO: add validation -- min/max and increment for quantity
//            Get all items out of session, convert back to ItemList, add new item, save back into session
//            allows for future extensibility to add multiple items -- currently, flow only allows one item per shipment/order
            List <Item> items = HttpContext.Session.GetJson <List <Item> >("Items") ?? new List <Item>();

            HttpContext.Session.SetString("ShippingMethod", itemOrdered.DeliveryMethod);
            itemOrdered.Item.ItemSequenceNumber = items.Count() + 1;
            items.Add(itemOrdered.Item);
            HttpContext.Session.SetJson("Items", items);
            return(RedirectToAction("ShipmentData"));
        }