public GetEntityResult<ExternalActivityViewModel> DownLoadExternalOrders(OrderSearchOptions orderSearchOptions)
        {
            GetEntityResult<ExternalActivityViewModel> externalActivityResult = new GetEntityResult<ExternalActivityViewModel>() { Success = false };

            ExternalOrderResult orderResult = null;

            orderSearchOptions.ToDate = DateTime.Now;

            orderResult = new ExternalOrderClient().GetUnshippedOrders(orderSearchOptions);

            if (orderResult.Success)
            {
                EntityOperationResultBase saveResult = SaveExternalOrder(orderResult.Orders);

            }
            else
            {
                externalActivityResult.ErrorMessage = "Error occurred while retrieving orders for " + orderSearchOptions.StoreProvider.ToString();

                return externalActivityResult;
            }

            ExternalActivityViewModel activity = new ExternalActivityViewModel()
            {
                ActivityStatus = ExternalActivityStatus.Completed,
                ExternalActivityType = ExternalActivityTypeEnum.GetUnshippedOrders,
                StoreProviderType = orderSearchOptions.StoreProvider,
                LastPerformedOn = orderSearchOptions.ToDate,
            };

            try
            {
                UpdateResult<ExternalActivity> externalActivityUpdateResult = UpdateExternalActivityDetails(activity);

                GetEntityResult<ExternalActivityViewModel> result = GetLastExternalActivityDetails(ExternalActivityTypeEnum.GetUnshippedOrders, orderSearchOptions.StoreProvider);

                externalActivityResult.Success = result.Success;
                externalActivityResult.Entity = result.Entity;

            }
            catch (Exception ex)
            {
                externalActivityResult.Success = false;
                externalActivityResult.ErrorMessage = "Error occurred while update activity details. Please refresh the page";
            }

            return externalActivityResult;
        }
        public HttpResponseMessage GetCategorySubCategoryMap(HttpRequestMessage request, Guid categoryId, Guid subCategoryId)
        {
            GetEntityResult<CategorySubCategoryMapViewModel> entityResult = new GetEntityResult<CategorySubCategoryMapViewModel>();

            return GetHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                entityResult = subCategoryActivity.GetCategorySubCategoryMap(categoryId, subCategoryId);

                response = new HttpResponseMessage(HttpStatusCode.OK);

                response.Content = new ObjectContent<GetEntityResult<CategorySubCategoryMapViewModel>>(entityResult, Configuration.Formatters.JsonFormatter);

                return response;

            });
        }
        public IHttpActionResult GetExternalActivityDetails(HttpRequestMessage request, int storeProvider, int activityType)
        {
            GetEntityResult<ExternalActivityViewModel> activityResult = new GetEntityResult<ExternalActivityViewModel>();

            try
            {
                activityResult = externalOrderActivity.GetLastExternalActivityDetails((ExternalActivityTypeEnum)activityType,
                                                                                       (StoreProviderTypeEnum)storeProvider);

            }
            catch (Exception ex)
            {
                activityResult.Success = false;
                activityResult.ErrorMessage = "Error while trying to retrieve Order Activity details " + ex.Message;

            }

            return Ok(activityResult);
        }
        public GetEntityResult<PurchaseOrderViewModel> GetPurchaseOrder(Guid purchaseOrderId)
        {
            GetEntityResult<PurchaseOrderViewModel> purchaseOrderResult = new GetEntityResult<PurchaseOrderViewModel>
            {
                Success = false,

            };

            using (InnoventoryDBContext dbContext = new InnoventoryDBContext())
            {

                purchaseOrderResult = purchaseOrderRepository.FindById(dbContext, purchaseOrderId);

                if (!purchaseOrderResult.Success || purchaseOrderResult.Entity == null)
                {
                    return purchaseOrderResult;
                }

                PurchaseOrderViewModel purchaseOrder = purchaseOrderResult.Entity;

                purchaseOrderResult.Entity.PurchaseOrderItems = new List<PurchaseOrderItemViewModel>();

                FindResult<PurchaseOrderItemViewModel> purchaseOrderItemsResult = purchaseOrderItemRepository.FindBy(dbContext, x => x.PurchaseOrderId == purchaseOrder.PurchaseOrderId);

                if (!purchaseOrderItemsResult.Success || purchaseOrderItemsResult.Entities.Count == 0)
                {
                    return purchaseOrderResult;
                }

                purchaseOrderResult.Entity.PurchaseOrderItems = purchaseOrderItemsResult.Entities;

                purchaseOrderResult.Success = true;
            }

            return purchaseOrderResult;
        }
        public GetEntityResult<ViewModels.SalesOrderViewModel> GetSalesOrder(Guid salesOrderId)
        {
            GetEntityResult<SalesOrderViewModel> salesOrderResult = new GetEntityResult<SalesOrderViewModel>
            {
                Success = false,

            };

            using (InnoventoryDBContext dbContext = new InnoventoryDBContext())
            {

                salesOrderResult = salesOrderRepository.FindById(dbContext, salesOrderId);

                if (!salesOrderResult.Success || salesOrderResult.Entity == null)
                {
                    return salesOrderResult;
                }

                SalesOrderViewModel salesOrder = salesOrderResult.Entity;

                salesOrderResult.Entity.SaleOrderItems = new List<SalesOrderItemViewModel>();

                FindResult<SalesOrderItemViewModel> salesOrderItemsResult = salesOrderItemRepository.FindBy(dbContext, x => x.SalesOrderId == salesOrder.SalesOrderId);

                if (!salesOrderItemsResult.Success || salesOrderItemsResult.Entities.Count == 0)
                {
                    return salesOrderResult;
                }

                salesOrderResult.Entity.SaleOrderItems = salesOrderItemsResult.Entities;

                salesOrderResult.Success = true;
            }

            return salesOrderResult;
        }
        public GetEntityResult<CategorySubCategoryMapViewModel> GetCategorySubCategoryMap(Guid categoryId, Guid subCategoryId)
        {
            FindResult<CategorySubCategoryMapViewModel> findResult = new FindResult<CategorySubCategoryMapViewModel>();

            findResult = categorySubCategoryMapRepo.FindBy(x => x.CategoryId == categoryId && x.SubCategoryId == subCategoryId);

            GetEntityResult<CategorySubCategoryMapViewModel> result = new GetEntityResult<CategorySubCategoryMapViewModel>();

            if (findResult.Success)
            {
                result.Entity = findResult.Entities.FirstOrDefault();
                result.Success = true;
            }
            else
            {
                result.Success = false;
                result.Entity = null;
            }

            return result;
        }
        public HttpResponseMessage GetSubCategory(HttpRequestMessage request, Guid id)
        {
            return GetHttpResponse(request, () =>
            {

                HttpResponseMessage response = null;
                SubCategoryCategories subCategory = subCategoryActivity.GetSubCategoryCategories(id);
                GetEntityResult<SubCategoryCategories> result = new GetEntityResult<SubCategoryCategories>
                {
                    Entity = subCategory,
                    ErrorMessage = string.Empty,
                    Success = true,
                    SuccessMessage = string.Empty
                };

                response = new HttpResponseMessage(HttpStatusCode.OK);

                response.Content = new ObjectContent<GetEntityResult<SubCategoryCategories>>(result, Configuration.Formatters.JsonFormatter);

                return response;

            });
        }
        public GetEntityResult<ExternalActivityViewModel> GetLastExternalActivityDetails(ExternalActivityTypeEnum activityType, StoreProviderTypeEnum storeProvider)
        {
            GetEntityResult<ExternalActivityViewModel> externalActivityResult = new GetEntityResult<ExternalActivityViewModel>() { Success = false };

            using (InnoventoryDBContext dbContext = new InnoventoryDBContext())
            {
                DbSet<ExternalActivity> externalActivitySet = dbContext.ExternalActivitySet;

                List<ExternalActivity> externalActivities = externalActivitySet.Where(x => x.ExternalActivityType == (int)activityType
                                                    && x.StoreProviderType == (int)storeProvider).ToList();

                if (externalActivities.Count == 0)
                {
                    externalActivityResult.Entity = null;

                    externalActivityResult.Success = true;

                    externalActivityResult.SuccessMessage = "No activity found...";
                }

                else
                {
                    externalActivities = externalActivities.OrderByDescending(x => x.LastPerformedOn).ToList();

                    ExternalActivity activity = externalActivities.FirstOrDefault();

                    ExternalActivityViewModel activityViewModel = new ExternalActivityViewModel()
                    {
                        ActivityStatus = (ExternalActivityStatus)activity.ActivityStatus,
                        ExternalActivityType = (ExternalActivityTypeEnum)activity.ExternalActivityType,
                        LastPerformedOn = activity.LastPerformedOn,
                        StoreProviderType = (StoreProviderTypeEnum)activity.StoreProviderType,

                    };

                    int unshippedCount = dbContext.ExternalOrderSet.Where(x => x.StoreOrderStatus == StoreOrderStatusEnum.Unshipped.ToString()
                                                                        && x.StoreProviderId == (int)storeProvider).Count();

                    activityViewModel.UnshippedOrdersCount = unshippedCount;

                    externalActivityResult.Entity = activityViewModel;

                    externalActivityResult.Success = true;

                }
            }

            return externalActivityResult;
        }
        public IHttpActionResult SyncUnshippedOrders(HttpRequestMessage request, [FromBody]OrderSearchOptions orderOptions)
        {
            GetEntityResult<ExternalActivityViewModel> result = new GetEntityResult<ExternalActivityViewModel>();

            try
            {

                IExternalOrderActivity orderActivity = new ExternalOrderActivity();

                result = orderActivity.DownLoadExternalOrders(orderOptions);

            }
            catch (Exception ex)
            {
                result.Success = false;
                result.ErrorMessage = ex.Message;

            }

            return Ok(result);
        }
Exemplo n.º 10
0
        public GetEntityResult<ProductViewModel> GetProduct(Guid productId)
        {
            GetEntityResult<ProductViewModel> entityResult = new GetEntityResult<ProductViewModel>();

            using (InnoventoryDBContext dbContext = new InnoventoryDBContext())
            {

                GetEntityResult<ProductViewModel> productResult = productRepository.FindById(dbContext, productId);

                if (!productResult.Success)
                {
                    return productResult;
                }

                var product = productResult.Entity;

                var categorySubCategoryMap = from cscmap in dbContext.CategorySubCategoryMapSet
                                             join c in dbContext.CategorySet on cscmap.CategoryId equals c.CategoryId
                                             join sc in dbContext.SubCategorySet
                                             on cscmap.SubCategoryId equals sc.SubCategoryId
                                             where (cscmap.CategorySubCategoryMapId == product.CategorySubCategoryMapId)
                                             select new CategorySubCategoryMapViewModel
                                             {
                                                 Category = new CategoryViewModel
                                                 {
                                                     CategoryId = c.CategoryId,
                                                     CategoryName = c.CategoryName,
                                                     Description = c.Description,
                                                 },
                                                 CategoryId = c.CategoryId,
                                                 CategorySubCategoryMapId = product.CategorySubCategoryMapId,
                                                 SubCategory = new SubCategoryViewModel
                                                 {
                                                     Description = sc.Description,
                                                     SubCategoryId = sc.SubCategoryId,
                                                     SubCategoryName = sc.SubCategoryName,
                                                 },
                                                 SubCategoryId = sc.SubCategoryId
                                             };

                product.CategorySubCategoryMap = categorySubCategoryMap.FirstOrDefault();

                //if (categorySubCategoryMap != null)
                //{
                //    var category = dbContext.CategorySet.Where(x => x.CategoryId == categorySubCategoryMap.CategoryId).FirstOrDefault();

                //    if (category != null)
                //    {
                //        product.CategoryId = category.CategoryId;
                //        product.CategoryName = category.CategoryName;
                //    }

                //    var subCategory = dbContext.SubCategorySet.Where(x => x.SubCategoryId == categorySubCategoryMap.SubCategoryId).FirstOrDefault();

                //    if (subCategory != null)
                //    {
                //        product.SubCategoryId = subCategory.SubCategoryId;
                //        product.SubCategoryName = subCategory.SubCategoryName;
                //    }

                //}

                FindResult<ProductVariantViewModel> findProductVriantResult = productVariantRepository.FindBy(dbContext, x => x.ProductId == productId);

                if (!findProductVriantResult.Success)
                {
                    entityResult.Success = false;
                    entityResult.ErrorMessage = findProductVriantResult.ErrorMessage;
                    return entityResult;
                }

                List<ProductVariantViewModel> productVariants = findProductVriantResult.Entities;

                product.ProductVariants = productVariants;

                long categoryAttributeCount = 0;

                FindResult<SubCategoryAttributeMapViewModel> subCatAttribMapResult = subCategoryAttributeMapRepository
                                .FindBy(dbContext, x => x.SubCategoryId == product.CategorySubCategoryMap.SubCategoryId);

                if (subCatAttribMapResult.Success && subCatAttribMapResult.Count > 0)
                {

                    categoryAttributeCount = subCatAttribMapResult.Count;

                }
                if (product.ProductVariants != null && product.ProductVariants.Count > 0)
                {
                    foreach (ProductVariantViewModel pvm in product.ProductVariants)
                    {

                        pvm.ProductVariantAttributeValues = (from pv in dbContext.ProductVariantAttributeValueSet
                                                             join avl in dbContext.AttributeValueListSet on pv.AttributeValueListId equals avl.AttributeValueListId
                                                             join subcatAttrMap in dbContext.SubCategoryAttributeMapSet
                                                             on avl.SubCategoryAttributeMapID equals subcatAttrMap.SubCategoryAttributeMapId
                                                             join productAttributs in dbContext.ProductAttributeSet
                                                             on subcatAttrMap.ProductAttributeId equals productAttributs.ProductAttributeId
                                                             where pv.ProductVariantId == pvm.ProductVariantId
                                                             select new ProductVariantAttributeValueViewModel
                                                             {
                                                                 ProductVariantId = pv.ProductVariantId,
                                                                 AttributeValueListId = avl.AttributeValueListId,
                                                                 ProductAttributeName = productAttributs.AttributeName,
                                                                 ProductAttributeValue = avl.AttributeValue,
                                                                 ProductAttributeId = productAttributs.ProductAttributeId,
                                                             }).ToList();

                    }
                }

                FindResult<ProductVariantListItem> pvResult = GetAllProductVariantListItems(product.ProductId);

                if (pvResult.Success)
                {
                    product.ProductVariantListItems = pvResult.Entities;
                }

                entityResult.Entity = product;

                entityResult.Success = true;
            }

            return entityResult;
        }