private int UpdateComponentFiles(BuilderComponent component)
        {
            int result = 0;

            string filePath = component.FilePath.Trim();

            downLoadcomponent = component;
            if (filePath != string.Empty && filePath != null)
            {
                GetOnlineComponent(component);
                result = 1;
                //if (result > 0)
                //{
                //    //result = objController.UpdateComponentValue(component.ComponentName, component.ComponentValue, component.UserModuleID, component.Version, component.UniversalComponentID, component.Type);
                //    if (result > 0 && filePath != string.Empty && filePath != null)
                //    {
                //        result = 3;
                //    }
                //}
            }
            else if (filePath == string.Empty || filePath == null)
            {
                result = UpdateComponentValue(component.ComponentName, component.ComponentValue, component.UserModuleID, component.Version, component.UniversalComponentID, component.Type);
                if (isLoopDepemdencyCheck)
                {
                    ComponentDependencies();
                }
            }
            return(result);
        }
        public void GetOnlineComponent(BuilderComponent component)
        {
            SageFrameConfig sageConfig = new SageFrameConfig();

            OnlineStoreURL = sageConfig.GetSettingValueByIndividualKey(SageFrameSettingKeys.OnlineStore);
            string           apiUrl          = OnlineStoreURL + "/GetOnlineComponentPackage";
            ComponentPackage tempThemeDetail = new ComponentPackage();

            using (WebClient wc = new WebClient())
            {
                wc.Headers[HttpRequestHeader.ContentType] = "application/json";
                wc.QueryString.Add("componentID", component.UniversalComponentID.ToString());
                wc.Encoding = Encoding.UTF8;
                var     resultData = wc.DownloadString(apiUrl);
                dynamic dyn        = JsonConvert.DeserializeObject(resultData);
                if (dyn != null)
                {
                    tempThemeDetail = JsonConvert.DeserializeObject <ComponentPackage>(dyn.d.Value);
                }
                string themePackageFilePath = HttpContext.Current.Server.MapPath(@"\downloadmyComponent");
                if (!Directory.Exists(themePackageFilePath))
                {
                    Directory.CreateDirectory(themePackageFilePath);
                }
                successComponentName  = tempThemeDetail.FileName;
                componentDownloadPath = themePackageFilePath + "\\component.zip";
                string sendHostURl = OnlineStoreURL.Replace("Sage_Services/OnlineStore.asmx", "");
                tempThemeDetail.HostUrl = sendHostURl + tempThemeDetail.FolderName + "/" + tempThemeDetail.FileName;
                DownloadComponentZip(tempThemeDetail.HostUrl, componentDownloadPath);
            }
        }
        private int UpdateComponentForPage(BuilderComponent objComponent)
        {
            BuilderComponent       component = new BuilderComponent();
            ComponentUploadHandler objComponentUploadHandler = new ComponentUploadHandler();

            component = objComponentUploadHandler.GetComponentByIDAndVersion(objComponent.UniversalComponentID, objComponent.Version);
            return(objComponentUploadHandler.UpdateComponentBulk(component, false));
        }
        public int UpdateComponentBulk(BuilderComponent component, bool checkFordependencies)
        {
            int    result      = 0;
            string easyVersion = string.Empty;

            checkFordependency    = checkFordependencies;
            isLoopDepemdencyCheck = true;
            result = UpdateComponentFiles(component);
            return(result);
        }
        public BuilderComponent GetComponentByIDAndVersion(long universalComponentID, decimal version)
        {
            BuilderComponent component = new BuilderComponent();

            using (WebClient wc = new WebClient())
            {
                SageFrameConfig sageConfig     = new SageFrameConfig();
                string          onlineStoreURL = sageConfig.GetSettingValueByIndividualKey(SageFrameSettingKeys.OnlineStore);
                string          apiUrl         = onlineStoreURL + "/GetComponentByIDAndVersion";
                wc.Headers[HttpRequestHeader.ContentType] = "application/json";
                wc.QueryString.Add("componentID", universalComponentID.ToString());
                wc.QueryString.Add("version", version.ToString());
                wc.Encoding = Encoding.UTF8;
                var     resultData = wc.DownloadString(apiUrl);
                dynamic dyn        = JsonConvert.DeserializeObject(resultData);
                if (dyn != null)
                {
                    string output = JsonConvert.SerializeObject(dyn.d);
                    component = JsonConvert.DeserializeObject <BuilderComponent>(output);
                }
            }
            return(component);
        }
 public void ComponentDependencies()
 {
     if (checkFordependency)
     {
         string      depencies        = downLoadcomponent.Dependencies.Trim();
         List <long> dependenciesList = new List <long>();
         int         userModuleID     = downLoadcomponent.UserModuleID;
         if (depencies != string.Empty && depencies != null)
         {
             dependenciesList = depencies.Split(',').Select(long.Parse).ToList();
         }
         if (dependenciesList.Count > 0)
         {
             foreach (long id in dependenciesList)
             {
                 BuilderComponent deComponent = new BuilderComponent();
                 deComponent = GetComponentByIDAndVersion(id, 0);
                 deComponent.UserModuleID = userModuleID;
                 isLoopDepemdencyCheck    = false;
                 UpdateComponentFiles(deComponent);
             }
         }
     }
 }