Ejemplo n.º 1
0
        public static void Initialize(MatchbookDbContext dbContext)
        {
            // Drop & re-create DB
            dbContext.Database.EnsureDeleted();
            dbContext.Database.EnsureCreated();

            // Data is already seeded?
            //if (dbContext.Orders.Any())
            //    return;

            // Do the initialization

            DataGenerator.KnownCurrencies
            .Select(code => new Currency {
                Code = code, Name = $"{code} currency"
            })
            .ForEach(currency => dbContext.Currencies.Add(currency));
            dbContext.SaveChanges();
            DataGenerator.KnownUnitsOfMeasure
            .Select(code => new UnitOfMeasure {
                Code = code, Name = $"{code} uom"
            })
            .ForEach(uom => dbContext.UnitsOfMeasure.Add(uom));
            dbContext.SaveChanges();

            DataGenerator.NewOrders()
            .Take(20)
            .ForEach(order => dbContext.Orders.Add(order));
            dbContext.SaveChanges();
        }
Ejemplo n.º 2
0
        public static ProductSpecification NewSavedProductSpec(MatchbookDbContext dbContext)
        {
            var spec = NewProductSpec();

            dbContext.ProductSpecifications.Add(spec);
            dbContext.SaveChanges();
            return(spec);
        }
Ejemplo n.º 3
0
        public static SubAccount NewSavedSubAccount(MatchbookDbContext dbContext)
        {
            var account = NewUnsavedSubAccount(dbContext);

            dbContext.SubAccounts.Add(account);
            dbContext.SaveChanges();
            return(account);
        }
Ejemplo n.º 4
0
        public static SubAccount NewUnsavedSubAccount(MatchbookDbContext dbContext)
        {
            var clearingAccount         = NewClearingAccount();
            var internalClearingAccount = NewClearingAccount();

            dbContext.ClearingAccounts.AddRange(clearingAccount, internalClearingAccount);
            dbContext.SaveChanges();

            var account = NewSubAccount();

            account.ClearingAccountId         = clearingAccount.Id;
            account.InternalClearingAccountId = internalClearingAccount.Id;
            return(account);
        }
        public void Seed(MatchbookDbContext context)
        {
            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();

            context.Orders.AddRange(
                DataGenerator.NewOrders()
                );

            //context.Post.AddRange(
            //    new Post() { Title = "Test Title 1", Description = "Test Description 1", CategoryId = 2, CreatedDate = DateTime.Now },
            //    new Post() { Title = "Test Title 2", Description = "Test Description 2", CategoryId = 3, CreatedDate = DateTime.Now }
            //);
            context.SaveChanges();
        }
Ejemplo n.º 6
0
        public async void Task_GetLinkById_Return_OKResult()
        {
            //Arrange
            var controller = new OrderLinkController(MatchbookDbContextWithData);
            var linkId     = 1;

            var linkid = new OrderLink
            {
                LinkedOrders = new List <Order> {
                    DataGenerator.NewOrder(), DataGenerator.NewOrder()
                },
                LinkName = "Test"
            };

            MatchbookDbContextWithData.OrderLink.Add(linkid);
            MatchbookDbContextWithData.SaveChanges();

            //Act
            var data = controller.Get(linkId);

            //Assert
            Assert.IsType <OkObjectResult>(data);
        }
Ejemplo n.º 7
0
        public (int, string) CreateLink(string name)
        {
            int    linkId  = -1;
            string message = string.Empty;

            try
            {
                MatchbookDbContext dbContext = new MatchbookDbContext();
                OrderLink          orderLink = new OrderLink()
                {
                    Name = name
                };
                dbContext.OrderLink.Add(orderLink);
                dbContext.SaveChanges();
                linkId = dbContext.OrderLink.OrderByDescending(link => link.Id).FirstOrDefault().Id ?? -1;
            }
            catch (Exception ex)
            {
                message = ex.Message;
            }
            return(linkId, message);
        }
Ejemplo n.º 8
0
        public (int, string) UpdateOrders(List <int> orderIds, int linkId)
        {
            int    success = 0;
            string message = string.Empty;

            try
            {
                MatchbookDbContext matchDbContext = new MatchbookDbContext();
                foreach (int orderId in orderIds)
                {
                    Order order = matchDbContext.Orders.Find(orderId);
                    order.LinkId = linkId;
                    matchDbContext.Orders.Update(order);
                }

                matchDbContext.SaveChanges();
                success = 1;
            }
            catch (Exception ex)
            {
                message = ex.Message;
            }
            return(success, message);
        }
Ejemplo n.º 9
0
        public HttpResponseMessage Post([FromBody] OrderLinkrequest linkrequest)
        {
            //var response = HttpContext.Response;
            var orderitemssplit = linkrequest.orderIds.Split(',');

            for (int i = 0; i < orderitemssplit.Length; i++)
            {
                var item1 = dbContext.Orders.FirstOrDefault(x => x.Id == Convert.ToUInt32(orderitemssplit[i]));
                if (item1 == null)
                {
                    return(new HttpResponseMessage()
                    {
                        StatusCode = HttpStatusCode.NotFound, ReasonPhrase = "The Order Id not found "
                    });
                }

                if (item1.LinkId == null)
                {
                    for (int j = 1; j < orderitemssplit.Length; j++)
                    {
                        var item2 = dbContext.Orders.FirstOrDefault(x => x.Id == Convert.ToUInt32(orderitemssplit[j]));
                        if (item2 == null)
                        {
                            continue;
                        }
                        if (item2.LinkId == null)
                        {
                            if (item1.SubAccountId == item2.SubAccountId && item1.ProductSymbol == item2.ProductSymbol)
                            {
                                if (dbContext.OrderLink.Any(x => x.LinkName == linkrequest.orderLinkname))
                                {
                                    return(new HttpResponseMessage()
                                    {
                                        StatusCode = HttpStatusCode.Forbidden, ReasonPhrase = "The Link Name is already provided"
                                    });
                                }
                                else
                                {
                                    var orderlink = new OrderLink();
                                    orderlink.LinkName     = linkrequest.orderLinkname;
                                    orderlink.LinkedOrders = new List <Order>()
                                    {
                                        item1, item2
                                    };
                                    dbContext.OrderLink.Add(orderlink);
                                    dbContext.SaveChanges();

                                    item1.LinkId = dbContext.OrderLink.FirstOrDefault(x => x.LinkName == linkrequest.orderLinkname).Id;
                                    item2.LinkId = dbContext.OrderLink.FirstOrDefault(x => x.LinkName == linkrequest.orderLinkname).Id;
                                    dbContext.Orders.Update(item1);
                                    dbContext.Orders.Update(item2);
                                    dbContext.SaveChanges();

                                    return(new HttpResponseMessage()
                                    {
                                        StatusCode = HttpStatusCode.Created, ReasonPhrase = "The Order Link has been created with Link Id" + dbContext.OrderLink.FirstOrDefault(x => x.LinkName == linkrequest.orderLinkname).Id
                                    });
                                }
                            }
                        }
                    }
                    return(new HttpResponseMessage()
                    {
                        StatusCode = HttpStatusCode.OK, ReasonPhrase = "No Matching Item Found "
                    });
                }
                else
                {
                    return(new HttpResponseMessage()
                    {
                        StatusCode = HttpStatusCode.Forbidden, ReasonPhrase = "The Order is already Linked"
                    });
                }
            }

            return(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK, ReasonPhrase = "No Matching Item Found "
            });
        }