Example #1
0
        public void Save(VacationsMovement vacationsMovement, int userId)
        {
            context.VacationsMovements.Add(vacationsMovement);
            var    approverName        = context.Attorneys.Where(a => a.UserId == userId).Select(a => a.Name).FirstOrDefault();
            var    attorney            = context.Attorneys.Where(a => a.Id == vacationsMovement.AttorneyId).FirstOrDefault();
            string notificationMessage = "El usuario {0} ha procedido a {1} en el sistema la cantidad de {2} días de vacaciones, por motivos de '{3}'." +
                                         " **Este es un mensaje autogenerado por el sistema, favor no responder**";
            string movement = "";
            string subject  = "";

            if (vacationsMovement.MovementType == VacationMovementEnum.Credit)
            {
                movement = "acreditar";
                attorney.VacationCount += vacationsMovement.Quantity;
                subject = "Acreditación de días de vacaciones en sistema web";
            }
            else if (vacationsMovement.MovementType == VacationMovementEnum.Debit && attorney.VacationCount >= vacationsMovement.Quantity)
            {
                movement = "deducir";
                attorney.VacationCount -= vacationsMovement.Quantity;
                subject = "Deducción de días de vacaciones en sistema web";
            }
            notificationMessage = String.Format(notificationMessage, approverName, movement, vacationsMovement.Quantity, vacationsMovement.Reason);
            context.SaveChanges();
            _mailer.SendMail(attorney.Email, subject, notificationMessage);
        }
Example #2
0
 public bool ValidateMovement(VacationsMovement vacationsMovement)
 {
     if (vacationsMovement.MovementType == VacationMovementEnum.Credit)
     {
         return(true);
     }
     else
     {
         var userId             = context.Attorneys.Where(a => a.Id == vacationsMovement.AttorneyId).Select(a => a.UserId).FirstOrDefault();
         var availableVacations = _vacationsRequestRepo.GetAvailableVacationCount(userId);
         if (availableVacations >= vacationsMovement.Quantity)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }