PageRenderTime 41ms CodeModel.GetById 12ms app.highlight 21ms RepoModel.GetById 2ms app.codeStats 0ms

/Docs/07-Implementacion/Source/trunk/EDUAR_actual/EDUAR/EDUAR_BusinessLogic/Common/BLFeriadosYFechasEspeciales.cs

http://blpm.googlecode.com/
C# | 236 lines | 187 code | 21 blank | 28 comment | 19 complexity | 8ad122b6c0d78e7eddc021659fb23393 MD5 | raw file
  1using System;
  2using System.Collections.Generic;
  3using System.Linq;
  4using System.Text;
  5using EDUAR_DataAccess.Common;
  6using EDUAR_Entities;
  7using EDUAR_BusinessLogic.Shared;
  8using EDUAR_Entities.Shared;
  9using EDUAR_Utility.Excepciones;
 10using EDUAR_Utility.Enumeraciones;
 11using EDUAR_DataAccess.Shared;
 12
 13namespace EDUAR_BusinessLogic.Common
 14{
 15	public class BLFeriadosYFechasEspeciales : BusinessLogicBase<FeriadosYFechasEspeciales, DAFeriadosYFechasEspeciales>
 16	{
 17		#region --[Constante]--
 18		private const string ClassName = "BLFeriadosYFechasEspeciales";
 19		#endregion
 20
 21		#region --[Constructores]--
 22		/// <summary>
 23		/// Constructor con DTO como parámetro.
 24		/// </summary>
 25		public BLFeriadosYFechasEspeciales(DTBase objFeriadosYFechasEspeciales)
 26		{
 27			Data = (FeriadosYFechasEspeciales)objFeriadosYFechasEspeciales;
 28		}
 29		/// <summary>
 30		/// Constructor vacio
 31		/// </summary>
 32		public BLFeriadosYFechasEspeciales()
 33		{
 34			Data = new FeriadosYFechasEspeciales();
 35		}
 36		#endregion
 37
 38		#region --[Propiedades Override]--
 39		protected override sealed DAFeriadosYFechasEspeciales DataAcces
 40		{
 41			get { return dataAcces; }
 42			set { dataAcces = value; }
 43		}
 44
 45		public override sealed FeriadosYFechasEspeciales Data
 46		{
 47			get { return data; }
 48			set { data = value; }
 49		}
 50
 51		public override string FieldId
 52		{
 53			get { return DataAcces.FieldID; }
 54		}
 55
 56		public override string FieldDescription
 57		{
 58			get { return DataAcces.FieldDescription; }
 59		}
 60
 61		/// <summary>
 62		/// Gets the by id.
 63		/// </summary>
 64		public override void GetById()
 65		{
 66			try
 67			{
 68				Data = DataAcces.GetById(Data);
 69			}
 70			catch (CustomizedException ex)
 71			{
 72				throw ex;
 73			}
 74			catch (Exception ex)
 75			{
 76				throw new CustomizedException(string.Format("Fallo en {0} - GetById", ClassName), ex,
 77											  enuExceptionType.BusinessLogicException);
 78			}
 79		}
 80
 81		/// <summary>
 82		/// Método que guarda el registro actualmente cargado en memoria. No importa si se trata de una alta o modificación.
 83		/// </summary>
 84		public override void Save()
 85		{
 86			try
 87			{
 88				//Abre la transaccion que se va a utilizar
 89				DataAcces.Transaction.OpenTransaction();
 90				int idFeriadosYFechasEspeciales = 0;
 91
 92				if (Data.idFeriado == 0)
 93					DataAcces.Create(Data, out idFeriadosYFechasEspeciales);
 94				else
 95					DataAcces.Update(Data);
 96
 97				//Se da el OK para la transaccion.
 98				DataAcces.Transaction.CommitTransaction();
 99			}
100			catch (CustomizedException ex)
101			{
102				if (DataAcces != null && DataAcces.Transaction != null)
103					DataAcces.Transaction.RollbackTransaction();
104				throw ex;
105			}
106			catch (Exception ex)
107			{
108				if (DataAcces != null && DataAcces.Transaction != null)
109					DataAcces.Transaction.RollbackTransaction();
110				throw new CustomizedException(string.Format("Fallo en {0} - Save()", ClassName), ex,
111											  enuExceptionType.BusinessLogicException);
112			}
113		}
114
115		/// <summary>
116		/// Método que guarda el registro actualmente cargado en memoria. No importa si se trata de una alta o modificación.
117		/// </summary>
118		public override void Save(DATransaction objDATransaction)
119		{
120			try
121			{
122				//Si no viene el Id es porque se esta creando la entidad
123				DataAcces = new DAFeriadosYFechasEspeciales(objDATransaction);
124				if (Data.idFeriado == 0)
125					DataAcces.Create(Data);
126				else
127				{
128					DataAcces.Update(Data);
129				}
130			}
131			catch (CustomizedException ex)
132			{
133				throw ex;
134			}
135			catch (Exception ex)
136			{
137				throw new CustomizedException(string.Format("Fallo en {0} - Save()", ClassName), ex,
138											  enuExceptionType.BusinessLogicException);
139			}
140		}
141
142		public override void Delete()
143		{
144			throw new NotImplementedException();
145		}
146
147		public override void Delete(DATransaction objDATransaction)
148		{
149			try
150			{
151				DataAcces = new DAFeriadosYFechasEspeciales(objDATransaction);
152				DataAcces.Delete(Data);
153			}
154			catch (CustomizedException ex)
155			{
156				throw ex;
157			}
158			catch (Exception ex)
159			{
160				throw new CustomizedException(string.Format("Fallo en {0} - Delete()", ClassName), ex,
161											  enuExceptionType.BusinessLogicException);
162			}
163		}
164		#endregion
165
166		#region --[Métodos publicos]--
167		/// <summary>
168		/// Validars the fecha.
169		/// </summary>
170		/// <param name="fecha">The fecha.</param>
171		/// <returns></returns>
172		public bool ValidarFecha(DateTime fecha)
173		{
174			try
175			{
176				bool diaDisponible = DataAcces.ValidarFecha(fecha);
177
178				if (!diaDisponible
179					|| (fecha.Date.DayOfWeek == DayOfWeek.Sunday || fecha.Date.DayOfWeek == DayOfWeek.Saturday))
180					throw new CustomizedException(string.Format("La fecha seleccionada corresponde a un día feriado/no laborable", ClassName), null,
181											  enuExceptionType.ValidationException);
182				return diaDisponible;
183			}
184			catch (CustomizedException ex)
185			{
186				throw ex;
187			}
188			catch (Exception ex)
189			{
190				throw new CustomizedException(string.Format("Fallo en {0} - GetFeriadosYFechasEspecialess", ClassName), ex,
191											  enuExceptionType.BusinessLogicException);
192			}
193		}
194
195        /// <summary>
196		/// Validars the hora (que sea en horario de funcionamiento del establecimiento educativo).
197		/// </summary>
198		/// <param name="hora">hora.</param>
199		/// <returns></returns>
200        public bool ValidarHora(DateTime hora)
201        {
202            bool retValue = false;
203            DateTime horaDesde, horaHasta;
204
205            try
206            {
207                horaDesde = DataAcces.getHorarioInicio();
208
209                horaHasta = DataAcces.getHorarioFinalizacion();
210
211                if (hora <= horaDesde || hora > horaHasta)
212                {
213                    throw new CustomizedException(string.Format("El horario debe ser dentro de la franja horaria laborable desde las: " + horaDesde.Hour + ":" + horaDesde.Minute + "hs hasta las " + horaHasta.Hour + ":" + horaHasta.Minute + "hs.", ClassName), null,
214                        enuExceptionType.ValidationException);
215                }
216                else
217                {
218                    retValue = true;
219                }
220    
221            }
222            catch (CustomizedException ex)
223            {
224                throw ex;
225            }
226            catch (Exception ex)
227            {
228                throw new CustomizedException(string.Format("Fallo en {0} - GetFeriadosYFechasEspecialess", ClassName), ex,
229                                              enuExceptionType.BusinessLogicException);
230            }
231
232            return (retValue);
233        }
234		#endregion
235	}
236}