Exemplo n.º 1
0
        public bool Publish(out List <string> publishDetails, BackgroundWorker bw = null)
        {
            publishDetails = new List <string>();

            var apiKey = Settings.GetApiKey();

            if (!string.IsNullOrEmpty(apiKey))
            {
                var categoriesToImport = new ProductCategoryRepository(Settings.ConnectionString).GetAll().ToList();

                var existingCategories = WebServiceHelper.GetAllCategories();

                //create all categories if they don't exist
                var numOfPublishedCategories = 0;
                foreach (var category in categoriesToImport)
                {
                    if (existingCategories.All(s => s?.Name != category.Category))
                    {
                        var pushableCategory = new PrivateCategory {
                            Name = category.Category
                        };
                        //if (!string.IsNullOrWhiteSpace(category.ParentCategoryName))
                        //{
                        //    pushableCategory.ParentCategoryId = GetParentCategoryID(existingCategories, category);
                        //}
                        //else
                        //{
                        pushableCategory.Depth = 0;
                        //}
                        existingCategories.Add(WebServiceHelper.PushCategory(pushableCategory));
                        publishDetails.Add($"Added category: {category.Category}");
                        numOfPublishedCategories++;
                    }
                }

                if (numOfPublishedCategories == 0)
                {
                    Logger.Instance.Warning("No categories were found to import.");
                }

                publishDetails.Insert(0, $"{numOfPublishedCategories} Categories published.");

                Logger.Instance.Info($"{numOfPublishedCategories} Categories published.");
                Logger.Instance.Debug($"{numOfPublishedCategories} Categories published. ApiKey: {apiKey}");

                return(true);
            }

            Logger.Instance.Warning("No Api Key set.");

            return(false);
        }
        public static PrivateCategory PushCategory(PrivateCategory category)
        {
            var requestUrl = $"/CategoryService/rest/Add/{Key}";

            var request = new RestRequest(requestUrl, Method.POST);

            request.AddJsonBody(category);
            var response = Client.Execute <ApiResult <PrivateCategory> >(request);

            if (response.Data.Result == null)
            {
                return(null);
            }

            return(response.Data.Item);
        }
        public static PrivateCategory PushCategory(PrivateCategory category)
        {
            try
            {
                var requestUrl = $"/CategoryService/rest/Add/{Key}";

                var request = new RestRequest(requestUrl, Method.POST);

                request.AddJsonBody(category);
                var response = Client.Execute <ApiResult <PrivateCategory> >(request);

                if (response.Data.Result == null)
                {
                    return(null);
                }

                return(response.Data.Item);
            }
            catch (Exception ex)
            {
                throw new Exception(JsonConvert.SerializeObject(category), ex);
            }
        }