public HttpResponseMessage add(Option post, Int32 languageId = 0) { // Check for errors if (post == null) { return(Request.CreateResponse <string>(HttpStatusCode.BadRequest, "The post is null")); } else if (Language.MasterPostExists(languageId) == false) { return(Request.CreateResponse <string>(HttpStatusCode.BadRequest, "The language does not exist")); } else if (OptionType.MasterPostExists(post.option_type_id) == false) { return(Request.CreateResponse <string>(HttpStatusCode.BadRequest, "The option type does not exist")); } // Make sure that the data is valid post.title = AnnytabDataValidation.TruncateString(post.title, 50); post.product_code_suffix = AnnytabDataValidation.TruncateString(post.product_code_suffix, 10); // Add the post Int64 insertId = Option.AddMasterPost(post); post.id = Convert.ToInt32(insertId); Option.AddLanguagePost(post, languageId); // Return the success response return(Request.CreateResponse <string>(HttpStatusCode.OK, "The post has been added")); } // End of the add method
} // End of the AddOption method /// <summary> /// Update the option in the database /// </summary> /// <param name="optionType">A reference to a option type</param> /// <param name="options">A list of options</param> /// <param name="languageId">A language id</param> private void UpdateOption(OptionType optionType, List <Option> options, Int32 languageId) { // Update the option type OptionType.UpdateMasterPost(optionType); OptionType.UpdateLanguagePost(optionType, languageId); // Get all the saved options List <Option> savedOptions = Option.GetByOptionTypeId(optionType.id, languageId); // Update or add options foreach (Option option in options) { // Get the saved option Option savedOption = Option.GetOneById(option.id, languageId); if (savedOption != null) { Option.UpdateMasterPost(option); Option.UpdateLanguagePost(option, languageId); } else { long insertId = Option.AddMasterPost(option); option.id = Convert.ToInt32(insertId); Option.AddLanguagePost(option, languageId); } } // Delete options foreach (Option savedOption in savedOptions) { // A boolean to indicate if the id is found bool idFound = false; // Loop all the input options foreach (Option option in options) { // Id has been found if (savedOption.id == option.id) { idFound = true; } } // Delete the id if has not been found if (idFound == false) { Option.DeleteOnId(savedOption.id); } } } // End of the Update Option method
} // End of the delete method #endregion #region Helper methods /// <summary> /// Add the option to the database /// </summary> /// <param name="optionType">A reference to a option type</param> /// <param name="options">A list of options</param> /// <param name="languageId">A language id</param> private void AddOption(OptionType optionType, List <Option> options, Int32 languageId) { // Save the option type long insertId = OptionType.AddMasterPost(optionType); optionType.id = Convert.ToInt32(insertId); OptionType.AddLanguagePost(optionType, languageId); // Save all the options foreach (Option option in options) { option.option_type_id = optionType.id; insertId = Option.AddMasterPost(option); option.id = Convert.ToInt32(insertId); Option.AddLanguagePost(option, languageId); } } // End of the AddOption method