Esempio n. 1
0
        public async Task CustomerIntegrationTest()
        {
            // Create DB Context
            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json")
                                .AddEnvironmentVariables()
                                .Build();

            var optionsBuilder = new DbContextOptionsBuilder <CustomerContext>();

            optionsBuilder.UseSqlServer(configuration["ConnectionStrings:DefaultConnection"]);

            var context = new CustomerContext(optionsBuilder.Options);

            //Just to make sure: Delete all existing customers in the DB
            await context.Database.EnsureDeletedAsync();

            await context.Database.EnsureCreatedAsync();

            //Create Controller
            var controller = new CustomerController(context);

            //Add Customer
            await controller.Add(new Customer()
            {
                CustomerName = "FooBar"
            });

            //Check: Does GetAll return the added Customer?
            var result = (await controller.GetAll()).ToArray();

            Assert.Single(result);
            Assert.Equal("FooBar", result[0].CustomerName);
        }
        public void ControllerAddPayload()
        {
            var payload = new Customer()
            {
                FirstName = "Danny", LastName = "Jones"
            };
            var CustomerControls = new CustomerController();

            CustomerControls.Add(payload);
        }
Esempio n. 3
0
        public void Add_Returns_ViewResult()
        {
            //Arrange
            var unit      = new Mock <ISportsUnitWork>();
            var custs     = new Mock <IRepository <Customer> >();
            var countries = new Mock <IRepository <Country> >();

            unit.Setup(r => r.Customers).Returns(custs.Object);
            unit.Setup(r => r.Countries).Returns(countries.Object);
            var controller = new CustomerController(unit.Object);


            //Act
            var result = controller.Add();

            //Assert
            Assert.IsType <ViewResult>(result);
        }
        public List <JObject> Parse(string action)
        {
            Function fn;
            var      ReturnObject = new List <JObject>();

            if (Actions.TryGetValue(action, out fn))
            {
                if (fn.QueryFields.Length > 0)
                {
                    Console.Write(fn.Verb + " " + fn.Domain + ":");
                    this._prompt = action;
                    Console.WriteLine("Query Builder:");
                    var QueryObjects = new List <JObject>();

                    while (true)
                    {
                        //Create a new Jobject and assign query fields
                        var Jobject = new JObject();
                        foreach (string s in fn.QueryFields)
                        {
                            Console.Write(s);
                            Console.Write(':');
                            var value = Console.ReadLine();
                            if (s.Contains("Id"))
                            {
                                int i = Int32.Parse(value);
                            }
                            Jobject[s] = value;
                        }
                        QueryObjects.Add(Jobject);
                        if (fn.MultiQuery == true)
                        {
                            Console.WriteLine("Add Another?: Y/N");
                            if (Console.ReadLine() == "N")
                            {
                                break;
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                    //Return a JOBJect list to calling function
                    if (fn.Verb == "Add")
                    {
                        if (fn.Domain == "Customer")
                        {
                            var controller = new CustomerController();
                            foreach (JObject j in QueryObjects)
                            {
                                Customer c = controller.Format(j);
                                var      x = controller.Add(c);
                                ReturnObject.Add(JObject.FromObject(x));
                            }

                            Console.WriteLine("Successfully Added Customer");
                        }
                        if (fn.Domain == "Order")
                        {
                            var controller = new OrderController();
                            int id         = 0;
                            foreach (JObject j in QueryObjects)
                            {
                                Order c = controller.Format(j);
                                c.Date = DateTime.Now;
                                if (c.OrderId == 0 && id == 0)
                                {
                                    id        = controller.max() + 1;
                                    c.OrderId = id;
                                }
                                if (c.OrderId == 0 && id != 0)
                                {
                                    c.OrderId = id;
                                }
                                controller.Add(c);
                            }
                            if (id != 0)
                            {
                                var j = new JObject();
                                j["New Order Id"] = id;
                                ReturnObject.Add(j);
                            }
                        }
                    }
                    if (fn.Verb == "Show")
                    {
                        if (fn.Domain == "Customer")
                        {
                            var qobject    = QueryObjects[0];
                            var controller = new OrderController();
                            var o          = controller
                                             .Where($"x=> x.CustomerId==\"{qobject["CustomerId"]}\"")
                                             .Include(x => x.Location)
                                             .Include(x => x.Product).ToList();
                            foreach (Order O in o)
                            {
                                var J = new JObject();
                                J["Location"] = O.Location.Name;
                                J["Product"]  = O.Product.Name;
                                J["Qty"]      = O.Qty;
                                J["Date"]     = O.Date;
                                ReturnObject.Add(J);
                            }
                        }
                        if (fn.Domain == "Order")
                        {
                            var          qobject    = QueryObjects[0];
                            var          controller = new OrderController();
                            List <Order> o          = controller.Where($"OrderId=\"{qobject["Id"]}\"")
                                                      .Include(x => x.Customer)
                                                      .Include(x => x.Product)
                                                      .Include(x => x.Location)
                                                      .ToList();
                            foreach (Order O in o)
                            {
                                var J = new JObject();
                                J["Location"] = O.Location.Name;
                                J["Product"]  = O.Product.Name;
                                J["Customer"] = O.Customer.FirstName + " " + O.Customer.LastName;
                                J["Qty"]      = O.Qty;
                                J["Date"]     = O.Date;
                                ReturnObject.Add(J);
                            }
                        }
                        if (fn.Domain == "Location")
                        {
                            var          qobject    = QueryObjects[0];
                            var          controller = new OrderController();
                            List <Order> o          = controller.Where($"x=>x.LocationId=\"{qobject["Id"]}\"")
                                                      .Include(x => x.Location)
                                                      .Include(x => x.Product)
                                                      .Include(x => x.Customer).ToList()
                            ;
                            foreach (Order O in o)
                            {
                                var J = new JObject();
                                J["Location"] = O.Location.Name;
                                J["Product"]  = O.Product.Name;
                                J["Customer"] = O.Customer.FirstName + " " + O.Customer.LastName;
                                J["Qty"]      = O.Qty;
                                J["Date"]     = O.Date;
                                ReturnObject.Add(J);
                            }
                        }
                    }
                    if (fn.Verb == "Search")
                    {
                        if (fn.Domain == "Customer")
                        {
                            var qobject    = QueryObjects[0];
                            var controller = new CustomerController();

                            string condition = $"FirstName=\"{qobject["FirstName"]}\" && LastName=\"{qobject["LastName"]}\"";
                            var    found     = controller.Where(condition);
                            foreach (Customer C in found)
                            {
                                var J = JObject.FromObject(C);
                                ReturnObject.Add(J);
                            }
                        }/*
                          * if (fn.Domain == "Order")
                          * {
                          * var qobject = QueryObjects[0];
                          * var controller = new OrderController();
                          * var found = controller.Where($"x.Customer.FirstName=={qobject["FirstName"]} && x.Customer.LastName=={qobject["LastName"]}");
                          * foreach (Customer C in found)
                          * {
                          *     var J = JObject.FromObject(C);
                          *     ReturnObject.Add(J);
                          * }
                          * }
                          */
                    }
                }
                return(ReturnObject);
            }

            else
            {
                throw new ArgumentException($"Command Not Found Please Try Again");
            }
        }