/// <summary> /// Saves this instance. /// </summary> /// <returns></returns> public static bool SaveOrUpdate(Status entity) { if (entity == null) throw new ArgumentNullException("entity"); if (entity.ProjectId <= Globals.NEW_ID) throw (new ArgumentException("Cannot save status, the project id is invalid")); if (string.IsNullOrEmpty(entity.Name)) throw (new ArgumentException("The status name cannot be empty or null")); if (entity.Id > Globals.NEW_ID) return DataProviderManager.Provider.UpdateStatus(entity); var tempId = DataProviderManager.Provider.CreateNewStatus(entity); if (tempId <= 0) return false; entity.Id = tempId; return true; }
/// <summary> /// Adds the status. /// </summary> /// <param name="s">The s.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void AddStatus(Object s, EventArgs e) { string newName = txtName.Text.Trim(); if (newName == String.Empty) return; var newStatus = new Status { ProjectId = ProjectId, Name = newName, ImageUrl = lstImages.SelectedValue, IsClosedState = chkClosedState.Checked }; if (StatusManager.SaveOrUpdate(newStatus)) { txtName.Text = ""; BindStatus(); lstImages.SelectedValue = String.Empty; chkClosedState.Checked = false; } else { ActionMessage.ShowErrorMessage(LoggingManager.GetErrorMessageResource("SaveStatusError")); } }
/// <summary> /// Updates the status. /// </summary> /// <param name="statusToUpdate">The status to update.</param> /// <returns></returns> public override bool UpdateStatus(Status statusToUpdate) { // Validate Parameters if (statusToUpdate == null) throw (new ArgumentNullException("statusToUpdate")); using (var sqlCmd = new SqlCommand()) { AddParamToSqlCmd(sqlCmd, "@ReturnValue", SqlDbType.Int, 0, ParameterDirection.ReturnValue, null); AddParamToSqlCmd(sqlCmd, "@StatusId", SqlDbType.Int, 0, ParameterDirection.Input, statusToUpdate.Id); AddParamToSqlCmd(sqlCmd, "@ProjectId", SqlDbType.Int, 0, ParameterDirection.Input, statusToUpdate.ProjectId); AddParamToSqlCmd(sqlCmd, "@SortOrder", SqlDbType.Int, 0, ParameterDirection.Input, statusToUpdate.SortOrder); AddParamToSqlCmd(sqlCmd, "@StatusName", SqlDbType.NVarChar, 0, ParameterDirection.Input, statusToUpdate.Name); AddParamToSqlCmd(sqlCmd, "@StatusImageUrl", SqlDbType.NText, 255, ParameterDirection.Input, statusToUpdate.ImageUrl); AddParamToSqlCmd(sqlCmd, "@IsClosedState", SqlDbType.Bit, 0, ParameterDirection.Input, statusToUpdate.IsClosedState); SetCommandType(sqlCmd, CommandType.StoredProcedure, SP_STATUS_UPDATE); ExecuteScalarCmd(sqlCmd); var returnValue = (int)sqlCmd.Parameters["@ReturnValue"].Value; return (returnValue == 0); } }
/// <summary> /// Creates the new status. /// </summary> /// <param name="newStatus">The new status.</param> /// <returns></returns> public override int CreateNewStatus(Status newStatus) { // Validate Parameters if (newStatus == null) throw (new ArgumentNullException("newStatus")); using (var sqlCmd = new SqlCommand()) { AddParamToSqlCmd(sqlCmd, "@ReturnValue", SqlDbType.Int, 0, ParameterDirection.ReturnValue, null); AddParamToSqlCmd(sqlCmd, "@ProjectId", SqlDbType.Int, 0, ParameterDirection.Input, newStatus.ProjectId); AddParamToSqlCmd(sqlCmd, "@StatusName", SqlDbType.NVarChar, 0, ParameterDirection.Input, newStatus.Name); AddParamToSqlCmd(sqlCmd, "@StatusImageUrl", SqlDbType.NText, 255, ParameterDirection.Input, newStatus.ImageUrl); AddParamToSqlCmd(sqlCmd, "@IsClosedState", SqlDbType.Bit, 0, ParameterDirection.Input, newStatus.IsClosedState); SetCommandType(sqlCmd, CommandType.StoredProcedure, SP_STATUS_CREATE); ExecuteScalarCmd(sqlCmd); return ((int)sqlCmd.Parameters["@ReturnValue"].Value); } }
public abstract bool UpdateStatus(Status statusToUpdate);
// Status public abstract int CreateNewStatus(Status newStatus);