コード例 #1
0
        public List <Product> GetProducts([FromQuery] string id)
        {
            List <Product> productListing = new List <Product>();

            HttpClient client = new HttpClient();

            var listing = OrderService.GetSingle(id).Products.ToList();

            if (listing.Count != 0)
            {
                listing.ForEach(product =>
                {
                    var result = client.GetAsync(productService + "/product/product/" + product.SKU);

                    JObject obj = JObject.Parse(result.Result.Content.ReadAsStringAsync().Result);

                    Product p = new Product.Builder()
                                .SetName(obj["Name"].ToString())
                                .SetDescription(obj["Description"].ToString())
                                .SetQuantity(product.Quantity)
                                .SetSKU(product.SKU)
                                .Build();

                    productListing.Add(p);
                });
            }
            return(productListing);
        }
コード例 #2
0
        public async Task <Product> InsertProductAsync(Product.Builder builder)
        {
            if (builder == null)
            {
                Notification
                .DefaultBuilder
                .AsError()
                .FromErrorEnum(Error.DomainServiceOnInsertNullBuilderError)
                .WithMessage(Constants.LocalizationSourceName, Error.DomainServiceOnInsertNullBuilderError)
                .Raise();

                return(default(Product));
            }

            var product = builder.Build();

            if (Notification.HasNotification())
            {
                return(default(Product));
            }

            product = await _repository.InsertProductAndGetIdAsync(product);

            return(product);
        }
コード例 #3
0
        public async Task <Order> GetSingle([FromQuery] string id)
        {
            var order = OrderService.GetSingle(id);

            HashSet <Product> products = new HashSet <Product>();

            await Task.Run(() => order.Products.ToList().ForEach(p =>
            {
                HttpClient client = new HttpClient();

                var result = client.GetAsync(productService + "/product/product/" + p.SKU);

                JObject obj = JObject.Parse(result.Result.Content.ReadAsStringAsync().Result);

                Product pr = new Product.Builder()
                             .SetName(obj["Name"].ToString())
                             .SetDescription(obj["Description"].ToString())
                             .SetQuantity(p.Quantity)
                             .SetSKU(p.SKU)
                             .Build();

                products.Add(pr);
            }));

            order.Products = products;

            return(order);
        }
コード例 #4
0
        public Task <Product> UpdateProductAsync(Product.Builder builder)
        {
            var entity = builder.Build();

            if (notificationHandler.HasNotification())
            {
                return(Task.FromResult <Product>(null));
            }

            list.RemoveAll(c => c.Id == entity.Id);
            list.Add(entity);

            return(entity.AsTask());
        }
コード例 #5
0
        public void TestSaveProduct()
        {
            Category category = categoryService.GetSingle(1);

            Product product = new Product.Builder()
                              .SetName("Test Product")
                              .SetDescription("This is my Test Product")
                              .SetCategory(category)
                              .IsPromoDepartment(true)
                              .IsPromoFront(true)
                              .IsInStock(true)
                              .Build();

            productService.Save(product);
        }
コード例 #6
0
        public Task <Product> InsertProductAsync(Product.Builder builder)
        {
            var entity = builder.Build();

            if (notificationHandler.HasNotification())
            {
                return(Task.FromResult <Product>(null));
            }

            entity.Id = Guid.NewGuid();

            list.Add(entity);

            return(entity.AsTask());
        }
コード例 #7
0
        public async Task <Product> UpdateProductAsync(Product.Builder builder)
        {
            if (builder == null)
            {
                Notification.RaiseError(Constants.LocalizationSourceName, Error.DomainServiceOnUpdateNullBuilderError);
                return(default(Product));
            }

            var product = builder.Build();

            if (Notification.HasNotification())
            {
                return(default(Product));
            }

            return(await _repository.UpdateProductAsync(product));
        }
コード例 #8
0
        private async Task <List <Product> > GetItemsAsync(string OrderNumber)
        {
            List <Product> items = new List <Product>();

            Con = CreateConnection();

            Query = "selectOrdersWithItems";

            Com.CommandText = Query;
            Com.Connection  = Con;
            Com.CommandType = CommandType.StoredProcedure;

            Com.Parameters.Clear();

            Com.Parameters.Add(new SqlParameter("@orderNumber", OrderNumber));

            DataAdapter.SelectCommand = Com;

            DataTable dataTable = new DataTable();

            DataAdapter.Fill(dataTable);

            foreach (DataRow row in dataTable.Rows)
            {
                string sku = row["sku"].ToString();

                Product product = new Product.Builder()
                                  .SetSKU(sku)
                                  .Build();

                int quantity = Convert.ToInt32(row["quantity"].ToString());

                product.Quantity = quantity;

                items.Add(product);
            }

            Com.Dispose();

            Con.Close();

            return(items);
        }
コード例 #9
0
        public void AddProduct([FromBody] JObject ProductObject)
        {
            ProductObject = new JObject();

            Category category = new Category();

            category.ID = Convert.ToInt32(ProductObject["CategoryID"].ToString());

            Product product = new Product.Builder()
                              .SetName(ProductObject["Name"].ToString())
                              .SetDescription(ProductObject["Description"].ToString())
                              .SetCategory(category)
                              .IsPromoDepartment(true)
                              .IsPromoFront(true)
                              .IsInStock(true)
                              .Build();

            productService.Save(product);
        }
コード例 #10
0
        public void TestOrderExists()
        {
            string SKU = "123123";

            Product product = new Product.Builder()
                              .SetSKU(SKU)
                              .SetQuantity(4)
                              .Build();

            Order order = new Order();

            order.Products.Add(product);
            order.CustomerNumber = "1234";
            order.DateCreated    = DateTime.Now;
            order.OrderStatus    = OrderStatus.CREATED.ToString();
            order.OrderNumber    = "00000006";

            Assert.AreEqual(true, OrderService.Exists(order));
        }
コード例 #11
0
        public void TestUpdateOrder()
        {
            string SKU = "123123";

            Product product = new Product.Builder()
                              .SetSKU(SKU)
                              .SetQuantity(5)
                              .Build();

            Order order = new Order();

            order.Products.Add(product);
            order.CustomerNumber = "1234";
            order.DateCreated    = DateTime.Now;
            order.OrderStatus    = OrderStatus.CREATED.ToString();
            order.OrderNumber    = "00000006";

            if (OrderService.Exists(order))
            {
                OrderService.Update(order);
            }
        }
コード例 #12
0
        public void TestSaveOrder()
        {
            string SKU  = "123123";
            string SKU2 = "235456";

            Product product1 = new Product.Builder()
                               .SetSKU(SKU)
                               .SetQuantity(12)
                               .Build();

            Product product2 = new Product.Builder()
                               .SetSKU(SKU2)
                               .SetQuantity(4)
                               .Build();

            Order order = new Order();

            order.Products.Add(product1);
            order.Products.Add(product2);
            order.CustomerNumber = "1234";

            OrderService.Save(order);
        }
コード例 #13
0
        public void CreateProductIfcTest()
        {
            // === create request
            string  projectName        = "test project";
            string  projectDescription = "project for test purposes";
            Project project            =
                new Project.Builder().withName(projectName)
                .withDescription(projectDescription)
                .build();
            string personGivenName  = "Cedric";
            string personFamilyName = "Mélange";
            string personIdentifier = "cmela";
            Person person           =
                new Person.Builder().withGivenName(personGivenName)
                .withFamilyName(personFamilyName)
                .withIdentifier(personIdentifier)
                .build();
            string       organizationName        = "EC Life";
            string       organizationDescription = "EC Life - for an easy, economical and ecological life";
            string       organizationIdentifier  = "ECL";
            Organization organization            =
                new Organization.Builder().withName(organizationName)
                .withDescription(organizationDescription)
                .withIdentifier(organizationIdentifier)
                .build();
            string      applicationName       = "ECL IfcCreator";
            string      applicationVersion    = "1.0";
            string      applicationIdentifier = "IfcCreator";
            Application application           =
                new Application.Builder().withName(applicationName)
                .withVersion(applicationVersion)
                .withIdentifier(applicationIdentifier)
                .withOrganization(new Organization.Builder().build())
                .build();
            OwnerHistory owner =
                new OwnerHistory.Builder().withPerson(person)
                .withOrganization(organization)
                .withApllication(application)
                .build();

            string productName        = "test product";
            string productDescription = "product for test purposes";
            string constructionString = "SHAPE({POLYLINE2D([[0,0],[0,1],[1,1],[1,0]])}).EXTRUDE(1)";
            var    material0          = new Material.Builder().withName("material0")
                                        .withColor(new ColorRGBa(1, 0, 0, 1))
                                        .withRoughness(0)
                                        .isMetal()
                                        .build();
            var material1 = new Material.Builder().withName("material1")
                            .withColor(new ColorRGBa(0, 0, 1, 1))
                            .withRoughness(1)
                            .isDielectric()
                            .build();
            RepresentationItem representationItem0 =
                new RepresentationItem.Builder()
                .withConstructionString(constructionString)
                .withMaterial(material0.id)
                .build();
            var rotationQ = new Quaternion();

            rotationQ.SetFromEuler(new double[] { 90, 90, 90 });
            RepresentationItem representationItem1 =
                new RepresentationItem.Builder()
                .withConstructionString(constructionString)
                .withTransformation(new Transformation.Builder()
                                    .withTranslation(new double[] { 2, 0, 0 })
                                    .withRotation(rotationQ.ToArray())
                                    .build())
                .withMaterial(material1.id)
                .build();
            Representation representation =
                new Representation.Builder().AddRepresentationItem(representationItem0)
                .AddRepresentationItem(representationItem1)
                .addMaterial(material0)
                .addMaterial(material1)
                .build();
            Product product =
                new Product.Builder().withName(productName)
                .withDescription(productDescription)
                .withType(ProductType.PROXY)
                .addRepresenation(representation)
                .build();
            IfcSchema         schema  = IfcSchema.IFC2X3;
            ProductIfcRequest request =
                new ProductIfcRequest.Builder().withProject(project)
                .withOwner(owner)
                .withProduct(product)
                .withSchema(schema)
                .build();

            // === convert to IFC stream
            MemoryStream       memStream         = new MemoryStream();
            IProductIfcCreator productIfcCreator = new ProductIfcCreator();

            productIfcCreator.CreateProductIfc(request, memStream);

            // === write to IFC file
            using (FileStream fileStream = File.Create("./product_ifc_creator_test.ifc"))
            {
                memStream.WriteTo(fileStream);
            }

            // === parse IFC stream
            Serializer serializer = new StepSerializer(typeof(IfcProject),
                                                       null,
                                                       schema.ToString(),
                                                       null,
                                                       "ECL IfcCreator");
            IfcProject parsedProject = (IfcProject)serializer.ReadObject(memStream);

            // === test values
            Assert.Equal(projectName, parsedProject.Name);
            Assert.Equal(projectDescription, parsedProject.Description);
            IfcOwnerHistory parsedowner = parsedProject.OwnerHistory;

            Assert.Equal(personGivenName, parsedowner.OwningUser.ThePerson.GivenName);
            Assert.Equal(personFamilyName, parsedowner.OwningUser.ThePerson.FamilyName);
            Assert.Equal(personIdentifier, parsedowner.OwningUser.ThePerson.Identification.Value.Value);
            Assert.Equal(organizationName, parsedowner.OwningUser.TheOrganization.Name);
            Assert.Equal(organizationDescription, parsedowner.OwningUser.TheOrganization.Description);
            Assert.Equal(applicationName, parsedowner.OwningApplication.ApplicationFullName);
            Assert.Equal(applicationVersion, parsedowner.OwningApplication.Version);
            Assert.Equal(applicationIdentifier, parsedowner.OwningApplication.ApplicationIdentifier.Value);
            IfcSite parsedSite = (IfcSite)GetItem(GetItem(parsedProject.IsDecomposedBy, 0).RelatedObjects, 0);

            Assert.Equal(personGivenName, parsedSite.OwnerHistory.OwningUser.ThePerson.GivenName);
            IfcBuilding parsedBuilding = (IfcBuilding)GetItem(GetItem(parsedSite.IsDecomposedBy, 0).RelatedObjects, 0);

            Assert.Equal(personGivenName, parsedBuilding.OwnerHistory.OwningUser.ThePerson.GivenName);
            IfcBuildingStorey parsedStorey = (IfcBuildingStorey)GetItem(GetItem(parsedBuilding.IsDecomposedBy, 0).RelatedObjects, 0);

            Assert.Equal(personGivenName, parsedStorey.OwnerHistory.OwningUser.ThePerson.GivenName);
            IfcProduct parsedProduct = (IfcProduct)GetItem(GetItem(parsedStorey.ContainsElements, 0).RelatedElements, 0);

            Assert.Equal(personGivenName, parsedProduct.OwnerHistory.OwningUser.ThePerson.GivenName);
            Assert.Equal(productName, parsedProduct.Name);
            Assert.Equal(productDescription, parsedProduct.Description);
            Assert.Equal(1, parsedProduct.Representation.Representations.Count);
            IfcRepresentation parsedShapeRepresentation = GetItem(parsedProduct.Representation.Representations, 0);

            Assert.Equal("Body", parsedShapeRepresentation.RepresentationIdentifier);
            Assert.Equal("SolidModel", parsedShapeRepresentation.RepresentationType);
            Assert.Equal(2, parsedShapeRepresentation.Items.Count);
            Assert.IsType <IfcExtrudedAreaSolid>(GetItem(parsedShapeRepresentation.Items, 0));
            Assert.IsType <IfcExtrudedAreaSolid>(GetItem(parsedShapeRepresentation.Items, 1));
            var parsedItem0 = (IfcExtrudedAreaSolid)GetItem(parsedShapeRepresentation.Items, 0);

            Assert.Equal(1, parsedItem0.StyledByItem.Count);
            var StyledItem0 = GetItem(parsedItem0.StyledByItem, 0);

            Assert.Equal("material0", ((IfcSurfaceStyle)GetItem(StyledItem0.Styles, 0)).Name);
            var parsedItem1 = (IfcExtrudedAreaSolid)GetItem(parsedShapeRepresentation.Items, 1);

            Assert.Equal(2, parsedItem1.Position.Location.Coordinates[0].Value);
            Assert.Equal(0, parsedItem1.Position.Location.Coordinates[1].Value);
            Assert.Equal(0, parsedItem1.Position.Location.Coordinates[2].Value);
            Assert.Equal(1, parsedItem1.Position.Axis.DirectionRatios[0].Value, 5);
            Assert.Equal(0, parsedItem1.Position.Axis.DirectionRatios[1].Value, 5);
            Assert.Equal(0, parsedItem1.Position.Axis.DirectionRatios[2].Value, 5);
            Assert.Equal(0, parsedItem1.Position.RefDirection.DirectionRatios[0].Value, 5);
            Assert.Equal(0, parsedItem1.Position.RefDirection.DirectionRatios[1].Value, 5);
            Assert.Equal(1, parsedItem1.Position.RefDirection.DirectionRatios[2].Value, 5);
            Assert.Equal(1, parsedItem0.StyledByItem.Count);
            var StyledItem1 = GetItem(parsedItem1.StyledByItem, 0);

            Assert.Equal("material1", ((IfcSurfaceStyle)GetItem(StyledItem1.Styles, 0)).Name);
        }
コード例 #14
0
 public async Task <Product> InsertProductAsync(Product.Builder builder)
 {
     if (builder == null)
     {
         Notification.RaiseError(Constants.LocalizationSourceName, Error.DomainServiceOnInsertNullBuilderError);
         return(default);