public CategoryInfo SaveCategory(Int32 storeID, Int32 portalID, Int32 categoryID, Int32 parentID, ASPXNameValue[] formVars, string selectedItems, string userName, string culture, int categoryLargeThumbImage, int categoryMediumThumbImage, int categorySmallThumbImage) { try { CategoryInfo categoryInfo = new CategoryInfo(); FormValidation formValidation = new FormValidation(); List<CategoryAttributeInfo> listCategoryAttributes = new List<CategoryAttributeInfo>(); categoryInfo.CategoryID = categoryID; categoryInfo.ParentID = parentID; categoryInfo.IsShowInCatalog = true; categoryInfo.IsShowInMenu = true; categoryInfo.IsShowInSearch = true; categoryInfo.PortalID = portalID; categoryInfo.StoreID = storeID; categoryInfo.ActiveFrom = new DateTime(1970, 1, 1); categoryInfo.ActiveTo = new DateTime(2999, 12, 30); bool toInsertIntoDB = true; bool isFormValid = true; //int _imageCounter = 0; string _imageVar = string.Empty; int _imageCounterFirst = 0; for (int i = 0; i < formVars.Length; i++) { int inputTypeID; int validationTypeID; string attribName = formVars[i].name; string attribValue = formVars[i].value; string jsonResult = formVars[i].name.Replace('-', ' '); string[] jsonVar = jsonResult.Split('_'); CategoryAttributeInfo categoryAttribute = new CategoryAttributeInfo(); categoryAttribute.AttributeID = int.Parse(jsonVar[0]); inputTypeID = int.Parse(jsonVar[1]); validationTypeID = int.Parse(jsonVar[2]); if (inputTypeID == 1) { if (validationTypeID == 3) { if (formValidation.ValidateValue(attribName, validationTypeID, attribValue)) { categoryAttribute.InputTypeID = inputTypeID; categoryAttribute.ValidationTypeID = validationTypeID; categoryAttribute.DECIMALValue = decimal.Parse(attribValue); } else { isFormValid = false; break; } } else if (validationTypeID == 5) { if (formValidation.ValidateValue(attribName, validationTypeID, attribValue)) { categoryAttribute.InputTypeID = inputTypeID; categoryAttribute.ValidationTypeID = validationTypeID; categoryAttribute.INTValue = Int32.Parse(attribValue); } else { isFormValid = false; break; } } else { if (formValidation.ValidateValue(attribName, validationTypeID, attribValue)) { categoryAttribute.InputTypeID = inputTypeID; categoryAttribute.ValidationTypeID = validationTypeID; categoryAttribute.NVARCHARValue = attribValue; } else { isFormValid = false; break; } } } else if (inputTypeID == 2) { if (formValidation.ValidateValue(attribName, validationTypeID, attribValue)) { categoryAttribute.InputTypeID = inputTypeID; categoryAttribute.ValidationTypeID = validationTypeID; categoryAttribute.TEXTValue = attribValue; } else { isFormValid = false; break; } } else if (inputTypeID == 3) { if (formValidation.ValidateValue(attribName, validationTypeID, attribValue)) { categoryAttribute.InputTypeID = inputTypeID; categoryAttribute.ValidationTypeID = validationTypeID; if (!string.IsNullOrEmpty(attribValue)) { categoryAttribute.DATEValue = DateTime.Parse(attribValue); } } else { isFormValid = false; break; } } else if (inputTypeID == 4) { if (formValidation.ValidateValue(attribName, validationTypeID, attribValue)) { categoryAttribute.InputTypeID = inputTypeID; categoryAttribute.ValidationTypeID = validationTypeID; if (!string.IsNullOrEmpty(attribValue)) { categoryAttribute.BooleanValue = (attribValue == "1" || attribValue.ToLower() == "true") ? true : false; } else { categoryAttribute.BooleanValue = false; } } else { isFormValid = false; break; } } else if (inputTypeID == 5 || inputTypeID == 6 || inputTypeID == 9 || inputTypeID == 10 || inputTypeID == 11 || inputTypeID == 12) { if (formValidation.ValidateValue(attribName, validationTypeID, attribValue)) { categoryAttribute.InputTypeID = inputTypeID; categoryAttribute.ValidationTypeID = validationTypeID; categoryAttribute.OPTIONValues = attribValue; } else { isFormValid = false; break; } } else if (inputTypeID == 7) { if (formValidation.ValidateValue(attribName, validationTypeID, attribValue)) { categoryAttribute.InputTypeID = inputTypeID; categoryAttribute.ValidationTypeID = validationTypeID; categoryAttribute.DECIMALValue = decimal.Parse(attribValue); } else { isFormValid = false; break; } } else if (inputTypeID == 8) { if (_imageCounterFirst % 2 == 0) { toInsertIntoDB = false; if (!string.IsNullOrEmpty(attribValue) && attribValue.ToLower() != "undefined") { if (formValidation.ValidateValue(attribName, validationTypeID, attribValue)) { _imageVar = attribValue; } else { isFormValid = false; break; } } else { _imageVar = ""; } } else { toInsertIntoDB = true; categoryAttribute.InputTypeID = inputTypeID; categoryAttribute.ValidationTypeID = validationTypeID; //_imageVar = _imageVar.Replace("../", ""); if (attribValue != _imageVar) { _imageVar = _imageVar.Replace("/", "\\"); //attribValue = attribValue.Replace("../", ""); attribValue = attribValue.Replace("/", "\\"); string tempFolder = @"Upload\temp"; FileHelperController fileObj = new FileHelperController(); attribValue = fileObj.MoveFileToModuleFolder(tempFolder, attribValue, _imageVar,categoryLargeThumbImage,categoryMediumThumbImage,categorySmallThumbImage, @"Modules\ASPXCommerce\ASPXCategoryManagement\uploads\", categoryID, "cat_"); categoryAttribute.FILEValue = attribValue; } //else if (_imageVar == "") //{ // categoryAttribute.FILEValue = _imageVar; //} else { categoryAttribute.FILEValue = attribValue; } } _imageCounterFirst++; } if (toInsertIntoDB) { listCategoryAttributes.Add(categoryAttribute); } } if (isFormValid) { CategorySqlProvider categorySqlProvider = new CategorySqlProvider(); categoryInfo = categorySqlProvider.CategoryAddUpdate(categoryInfo, selectedItems, listCategoryAttributes, userName, culture); } else { throw new Exception("Form is not valid one"); } return categoryInfo; } catch (Exception ex) { throw ex; } }
public CategoryInfo CategoryAddUpdate(CategoryInfo categoryInfo,string selectedItems, List<CategoryAttributeInfo> listCA, string userName, string culture) { SQLHandler sqlHandler = new SQLHandler(); System.Nullable<Int32> categoryID = 0; List<KeyValuePair<string, object>> parameterCollection = new List<KeyValuePair<string, object>>(); parameterCollection.Add(new KeyValuePair<string, object>("@CategoryID", categoryInfo.CategoryID)); parameterCollection.Add(new KeyValuePair<string, object>("@SelectedItems", selectedItems)); parameterCollection.Add(new KeyValuePair<string, object>("@ParentID", categoryInfo.ParentID)); parameterCollection.Add(new KeyValuePair<string, object>("@IsShowInSearch", categoryInfo.IsShowInSearch)); parameterCollection.Add(new KeyValuePair<string, object>("@IsShowInCatalog", categoryInfo.IsShowInCatalog)); parameterCollection.Add(new KeyValuePair<string, object>("@IsShowInMenu", categoryInfo.IsShowInMenu)); parameterCollection.Add(new KeyValuePair<string, object>("@ActiveFrom", categoryInfo.ActiveFrom)); parameterCollection.Add(new KeyValuePair<string, object>("@ActiveTo", categoryInfo.ActiveTo)); parameterCollection.Add(new KeyValuePair<string, object>("@StoreID", categoryInfo.StoreID)); parameterCollection.Add(new KeyValuePair<string, object>("@PortalID", categoryInfo.PortalID)); parameterCollection.Add(new KeyValuePair<string, object>("@IsActive", true)); parameterCollection.Add(new KeyValuePair<string, object>("@Username", userName)); parameterCollection.Add(new KeyValuePair<string, object>("@CultureName", culture)); try { categoryID = sqlHandler.ExecuteNonQueryAsGivenType<int>("dbo.usp_ASPX_CategoryAddUpdate", parameterCollection, "@NewCategoryID"); int inputTypeID; int validationTypeID; string valueType = string.Empty; foreach (CategoryAttributeInfo ca in listCA) { parameterCollection.Clear(); inputTypeID = ca.InputTypeID; validationTypeID = ca.ValidationTypeID; if (inputTypeID == 1) { if (validationTypeID == 3) { parameterCollection.Add(new KeyValuePair<string, object>("@AttributeValue", ca.DECIMALValue)); valueType = "DECIMAL"; } else if (validationTypeID == 5) { parameterCollection.Add(new KeyValuePair<string, object>("@AttributeValue", ca.INTValue)); valueType = "INT"; } else { parameterCollection.Add(new KeyValuePair<string, object>("@AttributeValue", ca.NVARCHARValue)); valueType = "NVARCHAR"; } } else if (inputTypeID == 2) { parameterCollection.Add(new KeyValuePair<string, object>("@AttributeValue", ca.TEXTValue)); valueType = "TEXT"; } else if (inputTypeID == 3) { parameterCollection.Add(new KeyValuePair<string, object>("@AttributeValue", ca.DATEValue)); valueType = "DATE"; } else if (inputTypeID == 4) { parameterCollection.Add(new KeyValuePair<string, object>("@AttributeValue", ca.BooleanValue)); valueType = "Boolean"; } else if (inputTypeID == 5 || inputTypeID == 6 || inputTypeID == 9 || inputTypeID == 10 || inputTypeID == 11 || inputTypeID == 12) { parameterCollection.Add(new KeyValuePair<string, object>("@AttributeValue", ca.OPTIONValues)); valueType = "OPTIONS"; } else if (inputTypeID == 7) { parameterCollection.Add(new KeyValuePair<string, object>("@AttributeValue", ca.DECIMALValue)); valueType = "DECIMAL"; } else if (inputTypeID == 8) { parameterCollection.Add(new KeyValuePair<string, object>("@AttributeValue", ca.FILEValue)); valueType = "FILE"; } parameterCollection.Add(new KeyValuePair<string, object>("@CategoryID", categoryID)); parameterCollection.Add(new KeyValuePair<string, object>("@AttributeID", ca.AttributeID)); parameterCollection.Add(new KeyValuePair<string, object>("@StoreID", categoryInfo.StoreID)); parameterCollection.Add(new KeyValuePair<string, object>("@PortalID", categoryInfo.PortalID)); parameterCollection.Add(new KeyValuePair<string, object>("@Username", userName)); parameterCollection.Add(new KeyValuePair<string, object>("@CultureName", culture)); sqlHandler.ExecuteNonQuery("dbo.usp_ASPX_CategoryAttributesValue" + valueType + "AddUpdate", parameterCollection); } } catch (Exception ex) { throw ex; } return categoryInfo; }