コード例 #1
0
        public void Composite_foreign_key_value_is_obtained_from_tracked_principal(bool generateTemporary, bool async)
        {
            var model           = BuildModel(generateTemporary);
            var contextServices = CreateContextServices(model);
            var manager         = contextServices.GetRequiredService <IStateManager>();

            var dependent = new OrderLineDetail();
            var principal = new OrderLine
            {
                OrderId   = 11,
                ProductId = 21,
                Detail    = dependent
            };

            manager.GetOrCreateEntry(principal).SetEntityState(EntityState.Unchanged);
            var dependentEntry = manager.GetOrCreateEntry(dependent);
            var property1      = model.FindEntityType(typeof(OrderLineDetail)).FindProperty("OrderId");
            var property2      = model.FindEntityType(typeof(OrderLineDetail)).FindProperty("ProductId");
            var keyPropagator  = contextServices.GetRequiredService <IKeyPropagator>();

            PropagateValue(keyPropagator, dependentEntry, property1, async);
            PropagateValue(keyPropagator, dependentEntry, property2, async);

            Assert.Equal(11, dependentEntry[property1]);
            Assert.False(dependentEntry.HasTemporaryValue(property1));
            Assert.Equal(21, dependentEntry[property2]);
            Assert.False(dependentEntry.HasTemporaryValue(property1));
        }
コード例 #2
0
 public static CommandDefinition Update(OrderLineDetail record)
 {
     return(new CommandDefinition(
                @"UPDATE [BUSINESS.WMS.ORDER_LINE_DETAIL]
         SET [ORDER_GUID] = @ORDER_GUID,
             [ORDER_LINE_GUID] = @ORDER_LINE_GUID,
             [PRIORITY] = @PRIORITY,		
             [ITEM_GUID] = @ITEM_GUID,
             [LOCATION_GUID] = @LOCATION_GUID,
             [UOM_GUID] = @UOM_GUID,
             [QTY] = @QTY,
             [BASE_QTY] = @BASE_QTY,
             [NUMBER] = @NUMBER
             WHERE GUID_RECORD = @GUID_RECORD", new
     {
         GUID_RECORD = record.Id,
         ORDER_GUID = record.OrderId,
         ORDER_LINE_GUID = record.OrderLineId,
         PRIORITY = record.Priority,
         ITEM_GUID = record.ItemId,
         LOCATION_GUID = record.LocationId,
         UOM_GUID = record.UomId,
         QTY = record.Qty,
         BASE_QTY = record.BaseQty,
         NUMBER = record.Number
     }));
 }
コード例 #3
0
        private EventPlannerOrderLine ToEventPlannerOrderLineDetail(OrderLineDetail orderLineDetail)
        {
            var mealList = GetAllMealByMenuId(orderLineDetail.MenuId)
                           .Select(m => new IdNameValue {
                Id = m.Id, Name = m.MealName
            })
                           .ToList();

            return(new EventPlannerOrderLine
            {
                BrandOrderLineId = orderLineDetail.OrderLineId,
                OrderLineId = orderLineDetail.Id,
                MenuId = orderLineDetail.MenuId,
                MenuName = GetMenuNameById(orderLineDetail.MenuId),
                BrandId = orderLineDetail.BrandId,
                BrandName = orderLineDetail.BrandName,
                Photo = GetMenuPhotoById(orderLineDetail.MenuId),
                MealList = mealList,
                Note = orderLineDetail.Note,
                StatusId = orderLineDetail.StatusId,
                StatusName = orderLineDetail.StatusName,
                Price = orderLineDetail.Amount,
                OtherFee = 0,
                DidRate = orderLineDetail.DidRate,
            });
        }
コード例 #4
0
        public async Task <IHttpActionResult> Put([FromODataUri] System.Guid key, [FromBody] OrderLineDetail entity)
        {
            logger.Trace("Call OrderLineDetailController Put");

            var record = await orderLineDetailRepository.UpdateAsync(entity);

            return(Updated(record));
        }
コード例 #5
0
        public async Task <IHttpActionResult> Post([FromBody] OrderLineDetail entity)
        {
            logger.Trace("Call OrderLineDetailController Post");

            var record = await orderLineDetailRepository.CreateAsync(entity);

            return(Created(record));
        }
コード例 #6
0
        public async Task <OrderLineDetail> UpdateAsync(OrderLineDetail OrderLineDetail)
        {
            using (var connection = context.CreateConnection())
            {
                await connection.ExecuteAsync(OrderLineDetailQuery.Update(OrderLineDetail));

                return(OrderLineDetail);
            }
        }
コード例 #7
0
 private BrandOrderLine OrderLineToBrandOrderLineById(OrderLineDetail orderLineDetail)
 {
     return(new BrandOrderLine
     {
         MenuId = orderLineDetail.MenuId,
         MenuName = GetMenuNameById(orderLineDetail.MenuId),
         Note = orderLineDetail.Note,
         Price = orderLineDetail.Amount
     });
 }
コード例 #8
0
        public void Composite_foreign_key_value_is_obtained_from_reference_to_principal()
        {
            var model = BuildModel();

            var principal = new OrderLine { OrderId = 11, ProductId = 21 };
            var dependent = new OrderLineDetail { OrderLine = principal };

            var dependentEntry = CreateContextConfiguration(model).StateManager.GetOrCreateEntry(dependent);

            Assert.Equal(11, CreateValueGenerator().Next(dependentEntry, model.GetEntityType(typeof(OrderLineDetail)).GetProperty("OrderId")));
            Assert.Equal(21, CreateValueGenerator().Next(dependentEntry, model.GetEntityType(typeof(OrderLineDetail)).GetProperty("ProductId")));
        }
コード例 #9
0
        public OrderLineDetail Create(OrderLineDetail OrderLineDetail)
        {
            if (OrderLineDetail.Id == Guid.Empty)
            {
                OrderLineDetail.Id = Guid.NewGuid();
            }

            using (var connection = context.CreateConnection())
            {
                connection.Execute(OrderLineDetailQuery.Insert(OrderLineDetail));
                return(OrderLineDetail);
            }
        }
コード例 #10
0
        public async Task <OrderLineDetail> CreateAsync(OrderLineDetail OrderLineDetail)
        {
            if (OrderLineDetail.Id == Guid.Empty)
            {
                OrderLineDetail.Id = Guid.NewGuid();
            }

            using (var connection = context.CreateConnection())
            {
                await connection.ExecuteAsync(OrderLineDetailQuery.Insert(OrderLineDetail));

                return(OrderLineDetail);
            }
        }
コード例 #11
0
        public void Composite_foreign_key_value_is_obtained_from_reference_to_principal()
        {
            var model = BuildModel();

            var principal = new OrderLine {
                OrderId = 11, ProductId = 21
            };
            var dependent = new OrderLineDetail {
                OrderLine = principal
            };

            var dependentEntry = CreateContextConfiguration(model).StateManager.GetOrCreateEntry(dependent);

            Assert.Equal(11, CreateValueGenerator().Next(dependentEntry, model.GetEntityType(typeof(OrderLineDetail)).GetProperty("OrderId")));
            Assert.Equal(21, CreateValueGenerator().Next(dependentEntry, model.GetEntityType(typeof(OrderLineDetail)).GetProperty("ProductId")));
        }
コード例 #12
0
 public static CommandDefinition Insert(OrderLineDetail record)
 {
     return(new CommandDefinition(
                @"INSERT INTO [BUSINESS.WMS.ORDER_LINE_DETAIL] ([GUID_RECORD],
             [ORDER_GUID],
             [ORDER_LINE_GUID],
             [PRIORITY],		
             [ITEM_GUID],
             [LOCATION_GUID],
             [UOM_GUID],
             [QTY],
             [BASE_QTY],
             [NUMBER],
             [BATCH_GUID],
             [HIDDEN],
             [DELETED]) 
         VALUES (@GUID_RECORD,
             @ORDER_GUID,
             @ORDER_LINE_GUID,
             @PRIORITY,
             @ITEM_GUID,
             @LOCATION_GUID,
             @UOM_GUID,
             @QTY, 
             @BASE_QTY,
             @NUMBER,
             @BATCH_GUID,
             @HIDDEN,
             @DELETED)", new
     {
         GUID_RECORD = record.Id,
         ORDER_GUID = record.OrderId,
         ORDER_LINE_GUID = record.OrderLineId,
         PRIORITY = record.Priority,
         ITEM_GUID = record.ItemId,
         LOCATION_GUID = record.LocationId,
         UOM_GUID = record.UomId,
         QTY = record.Qty,
         BASE_QTY = record.BaseQty,
         NUMBER = record.Number,
         BATCH_GUID = (Guid?)null,
         HIDDEN = 0,
         DELETED = 0
     }));
 }
コード例 #13
0
        public void OrderLineDetailRepositoryCRUDTest()
        {
            var context = new NoodleDbContext("NoodleDb");

            context.Init();

            IOrderLineDetailRepository repository = new OrderLineDetailRepository(context);

            var id = Guid.NewGuid();

            var record = new OrderLineDetail
            {
                Id       = id,
                BaseQty  = .1f,
                Priority = 1,
                Qty      = .1f,
                Number   = "SO001"
            };

            repository.Create(record);

            record.BaseQty  = .2f;
            record.Priority = 2;
            record.Qty      = .2f;
            record.Number   = "SO002";

            repository.Update(record);

            var updatedRecord = repository.GetById(id);

            Assert.AreEqual(record.Id, updatedRecord.Id);
            Assert.AreEqual(record.BaseQty, updatedRecord.BaseQty);
            Assert.AreEqual(record.Priority, updatedRecord.Priority);
            Assert.AreEqual(record.Qty, updatedRecord.Qty);
            Assert.AreEqual(record.Number, updatedRecord.Number);

            repository.Delete(record.Id);

            var deletedRecord = repository.GetById(id);

            Assert.IsNull(deletedRecord);
        }
コード例 #14
0
        public void Composite_foreign_key_value_is_obtained_from_tracked_principal()
        {
            var model   = BuildModel();
            var manager = CreateContextServices(model).GetRequiredService <StateManager>();

            var dependent = new OrderLineDetail();
            var principal = new OrderLine {
                OrderId = 11, ProductId = 21, Detail = dependent
            };

            manager.StartTracking(manager.GetOrCreateEntry(principal));
            var dependentEntry = manager.GetOrCreateEntry(dependent);
            var property1      = model.GetEntityType(typeof(OrderLineDetail)).GetProperty("OrderId");
            var property2      = model.GetEntityType(typeof(OrderLineDetail)).GetProperty("ProductId");

            CreateValueGenerator().PropagateValue(dependentEntry, property1);
            CreateValueGenerator().PropagateValue(dependentEntry, property2);

            Assert.Equal(11, dependentEntry[property1]);
            Assert.Equal(21, dependentEntry[property2]);
        }
コード例 #15
0
        public void Composite_foreign_key_value_is_obtained_from_reference_to_principal()
        {
            var model = BuildModel();

            var principal = new OrderLine {
                OrderId = 11, ProductId = 21
            };
            var dependent = new OrderLineDetail {
                OrderLine = principal
            };

            var contextServices = CreateContextServices(model);
            var dependentEntry  = contextServices.GetRequiredService <IStateManager>().GetOrCreateEntry(dependent);
            var property1       = model.GetEntityType(typeof(OrderLineDetail)).GetProperty("OrderId");
            var property2       = model.GetEntityType(typeof(OrderLineDetail)).GetProperty("ProductId");

            var keyPropagator = contextServices.GetRequiredService <IKeyPropagator>();

            PropagateValue(keyPropagator, dependentEntry, property1);
            PropagateValue(keyPropagator, dependentEntry, property2);

            Assert.Equal(11, dependentEntry[property1]);
            Assert.Equal(21, dependentEntry[property2]);
        }
コード例 #16
0
        public async Task Composite_foreign_key_value_is_obtained_from_tracked_principal(bool async)
        {
            var model           = BuildModel();
            var contextServices = CreateContextServices(model);
            var manager         = contextServices.GetRequiredService <StateManager>();

            var dependent = new OrderLineDetail();
            var principal = new OrderLine {
                OrderId = 11, ProductId = 21, Detail = dependent
            };

            manager.StartTracking(manager.GetOrCreateEntry(principal));
            var dependentEntry = manager.GetOrCreateEntry(dependent);
            var property1      = model.GetEntityType(typeof(OrderLineDetail)).GetProperty("OrderId");
            var property2      = model.GetEntityType(typeof(OrderLineDetail)).GetProperty("ProductId");

            var valuePropagator = contextServices.GetRequiredService <ForeignKeyValuePropagator>();

            await PropagateValue(valuePropagator, dependentEntry, property1, async);
            await PropagateValue(valuePropagator, dependentEntry, property2, async);

            Assert.Equal(11, dependentEntry[property1]);
            Assert.Equal(21, dependentEntry[property2]);
        }
コード例 #17
0
        public void Composite_foreign_key_value_is_obtained_from_tracked_principal()
        {
            var model = BuildModel();
            var contextServices = CreateContextServices(model);
            var manager = contextServices.GetRequiredService<IStateManager>();

            var dependent = new OrderLineDetail();
            var principal = new OrderLine { OrderId = 11, ProductId = 21, Detail = dependent };

            manager.StartTracking(manager.GetOrCreateEntry(principal));
            var dependentEntry = manager.GetOrCreateEntry(dependent);
            var property1 = model.GetEntityType(typeof(OrderLineDetail)).GetProperty("OrderId");
            var property2 = model.GetEntityType(typeof(OrderLineDetail)).GetProperty("ProductId");

            var keyPropagator = contextServices.GetRequiredService<IKeyPropagator>();
            PropagateValue(keyPropagator, dependentEntry, property1);
            PropagateValue(keyPropagator, dependentEntry, property2);

            Assert.Equal(11, dependentEntry[property1]);
            Assert.Equal(21, dependentEntry[property2]);
        }
コード例 #18
0
        public void OrderLineDetailCrudTest()
        {
            var context = new Container(new Uri("http://localhost:5588/odata/"));

            var item = new Product()
            {
                Key  = "TestProduct" + Guid.NewGuid(),
                Name = "TestProduct",
                Type = "REGULAR"
            };

            context.AddToProducts(item);
            context.SaveChanges();
            var savedItem = context.Products.Where(u => u.Key == item.Key).Single();

            var location = new Location
            {
                Key    = "TestLocation" + Guid.NewGuid(),
                Name   = "TestLocation",
                Type   = "WAREHOUSE",
                UnitId = Guid.NewGuid()
            };

            context.AddToLocations(location);
            context.SaveChanges();
            var savedLocation = context.Locations.Where(l => l.Key == location.Key).Single();

            var orderLine = new OrderLine
            {
                Id         = Guid.NewGuid(),
                BasePrice  = .1f,
                BaseQty    = .1f,
                Price      = .1f,
                Priority   = 1,
                Qty        = .1f,
                Amount     = 10,
                BaseAmount = 10
            };

            context.AddToOrderLines(orderLine);
            context.SaveChanges();
            var savedOrderLine = context.OrderLines.Where(ol => ol.Id == orderLine.Id).Single();

            var uom = new Uom
            {
                Key  = "TestUom" + Guid.NewGuid(),
                Name = "TestUom"
            };

            context.AddToUoms(uom);
            context.SaveChanges();
            var savedUom = context.Uoms.Where(u => u.Key == uom.Key).Single();

            var order = new Order
            {
                Id            = Guid.NewGuid(),
                Amount        = 10,
                BaseAmount    = 10,
                CurrencyId    = Guid.NewGuid(),
                CustomerId    = Guid.NewGuid(),
                Date          = new DateTime(2000, 1, 1),
                DestinationId = Guid.NewGuid(),
                DueDate       = new DateTime(2001, 1, 1),
                LinesCount    = 5,
                Number        = "SO001",
                SourceId      = Guid.NewGuid(),
                Type          = "SO"
            };

            context.AddToOrders(order);
            context.SaveChanges();
            var savedOrder = context.Orders.Where(o => o.Id == order.Id).Single();

            var orderLineDetail = new OrderLineDetail
            {
                BaseQty     = .1f,
                Priority    = 1,
                Qty         = .1f,
                Number      = "SO001",
                ItemId      = savedItem.Id,
                LocationId  = savedLocation.Id,
                OrderLineId = savedOrderLine.Id,
                UomId       = savedUom.Id,
                OrderId     = order.Id
            };

            context.AddToOrderLineDetails(orderLineDetail);

            var response = context.SaveChanges();

            foreach (ChangeOperationResponse change in response)
            {
                var descriptor = change.Descriptor as EntityDescriptor;
                var entity     = descriptor.Entity as OrderLineDetail;

                entity.Number = "SO002";
                context.UpdateObject(entity);
                context.SaveChanges(SaveChangesOptions.ReplaceOnUpdate);

                var savedEntity         = context.OrderLineDetails.Where(r => r.Id == entity.Id).Single();
                var referencedItem      = context.OrderLineDetails.Where(r => r.Id == entity.Id).Select(r => r.Item).Single();
                var referencedLocation  = context.OrderLineDetails.Where(r => r.Id == entity.Id).Select(r => r.Location).Single();
                var referencedOrderLine = context.OrderLineDetails.Where(r => r.Id == entity.Id).Select(r => r.OrderLine).Single();
                var referencedUom       = context.OrderLineDetails.Where(r => r.Id == entity.Id).Select(r => r.Uom).Single();
                var referencedOrder     = context.OrderLineDetails.Where(r => r.Id == entity.Id).Select(r => r.Order).Single();

                context.DeleteObject(savedItem);
                context.DeleteObject(savedLocation);
                context.DeleteObject(savedOrder);
                context.DeleteObject(savedOrderLine);
                context.DeleteObject(savedUom);
                context.DeleteObject(entity);
                var deleteResponses = context.SaveChanges();

                Assert.IsNotNull(savedEntity);
                Assert.AreEqual(savedEntity.Number, entity.Number);
                Assert.AreEqual(referencedItem.Key, item.Key);
                Assert.AreEqual(referencedLocation.Key, location.Key);
                Assert.AreEqual(referencedOrderLine.Id, orderLine.Id);
                Assert.AreEqual(referencedUom.Key, referencedUom.Key);
                Assert.AreEqual(referencedOrder.Id, order.Id);
                Assert.IsNotNull(deleteResponses);
            }

            Assert.IsNotNull(response);
        }
コード例 #19
0
 public OrderLineDetail Update(OrderLineDetail OrderLineDetail)
 {
     return(UpdateAsync(OrderLineDetail).Result);
 }
コード例 #20
0
        public void Composite_foreign_key_value_is_obtained_from_reference_to_principal()
        {
            var model = BuildModel();

            var principal = new OrderLine { OrderId = 11, ProductId = 21 };
            var dependent = new OrderLineDetail { OrderLine = principal };

            var contextServices = CreateContextServices(model);
            var dependentEntry = contextServices.GetRequiredService<IStateManager>().GetOrCreateEntry(dependent);
            var property1 = model.FindEntityType(typeof(OrderLineDetail)).FindProperty("OrderId");
            var property2 = model.FindEntityType(typeof(OrderLineDetail)).FindProperty("ProductId");

            var keyPropagator = contextServices.GetRequiredService<IKeyPropagator>();
            PropagateValue(keyPropagator, dependentEntry, property1);
            PropagateValue(keyPropagator, dependentEntry, property2);

            Assert.Equal(11, dependentEntry[property1]);
            Assert.Equal(21, dependentEntry[property2]);
        }