Esempio n. 1
0
		/// <summary>
		/// Creates new office record in database.
		/// </summary>
		/// <param name="details">Office details.</param>
		/// <returns>ID of new record.</returns>
		public override int CreateOffice( OfficeDetails details )
		{
			int id = -1;
			using( SqlConnection connection = new SqlConnection( this.ConnectionString ) )
			{
				connection.Open();
				SqlTransaction transaction = connection.BeginTransaction();
				SqlCommand command = connection.CreateCommand();
				command.Transaction = transaction;
				command.CommandText =
					string.Format(
						@"INSERT INTO {0} (OfficeName, StatusesServiceURL, StatusesServiceUserName, StatusesServicePassword, MeteoInformer) VALUES  (@OfficeName, @StatusesServiceURL, @StatusesServiceUserName, @StatusesServicePassword, @MeteoInformer) SELECT @@IDENTITY",
						DBOfficesTableName );
				command.Parameters.Add( "@OfficeName", SqlDbType.NVarChar ).Value =
					details.OfficeName;
				command.Parameters.Add( "@StatusesServiceURL", SqlDbType.NVarChar ).Value =
					details.StatusesServiceURL;
				command.Parameters.Add( "@StatusesServiceUserName", SqlDbType.NVarChar ).Value =
					details.StatusesServiceUserName;
				command.Parameters.Add( "@StatusesServicePassword", SqlDbType.NVarChar ).Value =
					details.StatusesServicePassword;
				command.Parameters.Add( "@MeteoInformer", SqlDbType.NVarChar ).Value =
					details.MeteoInformer;

				try
				{
					id = Convert.ToInt32( ExecuteScalar( command ) );

					transaction.Commit();

					details.ID = id;
					m_Cache[ id ] = details;
				}
				catch
				{ transaction.Rollback(); }
			}
			return id;
		}
Esempio n. 2
0
		/// <summary>
		/// Returns all offices details.
		/// </summary>
		/// <returns>Array of all offices details.</returns>
		public override OfficeDetails[] GetAllOffices()
		{
			if( m_Cache.Count == 0 )
				return new OfficeDetails[ 0 ];

			OfficeDetails[] offices = new OfficeDetails[ m_Cache.Values.Count ];
			m_Cache.Values.CopyTo( offices, 0 );
			return offices;
		}
Esempio n. 3
0
		/// <summary>
		/// Returns office details from data reader.
		/// </summary>
		/// <param name="reader">Data reader.</param>
		/// <returns>Office details from data reader.</returns>
		protected virtual OfficeDetails GetOfficeDetailsFromReader( IDataReader reader )
		{
			OfficeDetails details = new OfficeDetails();
			details.ID = (int) reader[ "ID" ];
			details.OfficeName = (string) reader[ "OfficeName" ];

			if( reader[ "StatusesServiceURL" ] == DBNull.Value )
				details.StatusesServiceURL = null;
			else
				details.StatusesServiceURL = (string) reader[ "StatusesServiceURL" ];

			if( reader[ "StatusesServiceUserName" ] == DBNull.Value )
				details.StatusesServiceUserName = null;
			else
				details.StatusesServiceUserName = (string) reader[ "StatusesServiceUserName" ];

			if( reader[ "StatusesServicePassword" ] == DBNull.Value )
				details.StatusesServicePassword = null;
			else
				details.StatusesServicePassword = (string) reader[ "StatusesServicePassword" ];

			if( reader[ "MeteoInformer" ] == DBNull.Value )
				details.MeteoInformer = null;
			else
				details.MeteoInformer = (string) reader[ "MeteoInformer" ];

			return details;
		}
Esempio n. 4
0
		/// <summary>
		/// Updates office information in database.
		/// </summary>
		/// <param name="details">Office details.</param>
		/// <returns>True if record was successfully updated; false, otherwise.</returns>
		public override bool UpdateOffice( OfficeDetails details )
		{
			using( SqlConnection connection = new SqlConnection( this.ConnectionString ) )
			{
				connection.Open();
				SqlTransaction transaction = connection.BeginTransaction();
				SqlCommand command = connection.CreateCommand();
				command.Transaction = transaction;
				command.CommandText =
					string.Format(
						"UPDATE {0} SET OfficeName=@OfficeName, StatusesServiceURL=@StatusesServiceURL, StatusesServiceUserName=@StatusesServiceUserName, StatusesServicePassword=@StatusesServicePassword, MeteoInformer=@MeteoInformer WHERE ID=@ID",
						DBOfficesTableName );
				command.Parameters.Add( "@ID", SqlDbType.Int ).Value = details.ID;
				command.Parameters.Add( "@OfficeName", SqlDbType.NVarChar ).Value =
					details.OfficeName;
				command.Parameters.Add( "@StatusesServiceURL", SqlDbType.NVarChar ).Value =
					details.StatusesServiceURL;
				command.Parameters.Add( "@StatusesServiceUserName", SqlDbType.NVarChar ).Value =
					details.StatusesServiceUserName;
				command.Parameters.Add( "@StatusesServicePassword", SqlDbType.NVarChar ).Value =
					details.StatusesServicePassword;
				command.Parameters.Add( "@MeteoInformer", SqlDbType.NVarChar ).Value =
					details.MeteoInformer;

				try
				{
					bool result = ( ExecuteNonQuery( command ) == 1 );

					if( result )
					{
						transaction.Commit();

						m_Cache[ details.ID ] = details;
					}
					else
						transaction.Rollback();

					return result;
				}
				catch
				{
					transaction.Rollback();
					return false;
				}

			}
		}