示例#1
0
        public async Task <IHttpActionResult> PostManufacturer(ManufacturerRequest manufacturerRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var now = DateTime.Now;

            var manufacturer = new Manufacturer
            {
                Name                  = manufacturerRequest.Name,
                AuditCreatedBy        = UserResolver.CurrentUserId,
                AuditCreatedDate      = now,
                AuditLastModifiedBy   = UserResolver.CurrentUserId,
                AuditLastModifiedDate = now
            };

            WebApiContext.Manufacturers.Add(manufacturer);
            await WebApiContext.SaveChangesAsync();

            var response = new ManufacturerResponse
            {
                ManufacturerId = manufacturer.ManufacturerId,
                Name           = manufacturer.Name
            };

            return(CreatedAtRoute(nameof(GetManufacturer), new { manufacturerId = response.ManufacturerId }, response));
        }
示例#2
0
        public async Task <IHttpActionResult> GetManufacturer(int manufacturerId)
        {
            var manufacturer = await WebApiContext.Manufacturers.FindAsync(manufacturerId);

            if (manufacturer == null)
            {
                return(NotFound());
            }

            var result = new ManufacturerResponse
            {
                ManufacturerId = manufacturerId,
                Name           = manufacturer.Name,
                ProductsCount  = await WebApiContext.Products.CountAsync(_ => _.ManufacturerId == manufacturerId)
            };

            return(Ok(result));
        }
示例#3
0
        public async Task <IHttpActionResult> DeleteManufacturer(int manufacturerId)
        {
            var manufacturer = await WebApiContext.Manufacturers.FindAsync(manufacturerId);

            if (manufacturer == null)
            {
                return(NotFound());
            }

            var products = WebApiContext.Products
                           .Where(_ => _.ManufacturerId == manufacturerId);

            var productImages = WebApiContext.ProductImages
                                .Where(_ => products.Any(p => p.ProductId == _.ProductImageId));

            if (productImages.Any())
            {
                WebApiContext.ProductImages.RemoveRange(productImages);
            }

            if (products.Any())
            {
                WebApiContext.Products.RemoveRange(products);
            }

            var manufacturerLogo = await WebApiContext.ManufacturerLogos
                                   .FirstOrDefaultAsync(_ => _.ManufacturerLogoId == manufacturerId);

            if (manufacturerLogo != null)
            {
                WebApiContext.ManufacturerLogos.Remove(manufacturerLogo);
            }

            WebApiContext.Manufacturers.Remove(manufacturer);
            await WebApiContext.SaveChangesAsync();

            var response = new ManufacturerResponse
            {
                ManufacturerId = manufacturerId,
                Name           = manufacturer.Name
            };

            return(Ok(response));
        }
        public async Task <List <Manufacturer> > GetManufacturers(string userName, string token, string uuid)
        {
            if (uuid == "")
            {
                return(new List <Manufacturer>());
            }

            ManufacturerResponse response = await awsHttpClient.GetManufacturersAsync(new UIDInfoRequest()
            {
                Username = userName, Token = token, UID = uuid
            });

            if (response == null || response?.Manufacturers == null)
            {
                return(new List <Manufacturer>());
            }

            return(response.Manufacturers);
        }
        public async Task <List <Manufacturer> > GetManufacturers(string userName, string token, string uuid)
        {
            if (userName == "" || token == "" || uuid == "")
            {
                return(new List <Manufacturer>());
            }

            if (client.DefaultRequestHeaders.Contains("code"))
            {
                client.DefaultRequestHeaders.Remove("code");
            }
            client.DefaultRequestHeaders.Add("code", Constants.AzureApiKey_GetManufacturers);
            try
            {
                string postBody = JsonConvert.SerializeObject(new UIDInfoRequest()
                {
                    Username = userName, Token = token, UID = uuid
                });

                HttpResponseMessage response = await client.PostAsync(Constants.AzureEndPoint_GetMessages, new StringContent(postBody, Encoding.UTF8, "application/json"));

                //              AnalyticsService.TrackEvent("Response: " + response.StatusCode.ToString());

                if (response.IsSuccessStatusCode)
                {
                    string str = await response.Content.ReadAsStringAsync();

                    //AnalyticsService.TrackEvent(str);
                    var settings = new JsonSerializerSettings
                    {
                        NullValueHandling     = NullValueHandling.Ignore,
                        MissingMemberHandling = MissingMemberHandling.Ignore
                    };
                    ManufacturerResponse manufactuerersResponse = JsonConvert.DeserializeObject <ManufacturerResponse>(str, settings);

                    if (manufactuerersResponse == null || manufactuerersResponse?.Manufacturers == null)
                    {
                        return(new List <Manufacturer>());
                    }

                    return(manufactuerersResponse.Manufacturers);
                }
                else
                {
                    string str = await response.Content.ReadAsStringAsync();

                    AnalyticsService.TrackEvent(str);
                }
            }
            catch (HttpRequestException hre)
            {
                AnalyticsService.TrackError(hre);
            }
            catch (TaskCanceledException hca)
            {
                AnalyticsService.TrackError(hca);
                AnalyticsService.TrackEvent("Request canceled");
            }
            catch (Exception ex)
            {
                AnalyticsService.TrackError(ex);
            }
            finally
            {
                /*if (httpClient != null)
                 * {
                 *  httpClient.Dispose();
                 *  httpClient = null;
                 * }*/
            }
            return(new List <Manufacturer>());
        }