Exemple #1
0
        /**
         * Methods saves the absence if correct data provided
         *
         * @param abcence Absence model
         * @return result of saving
         */
        private bool saveAbsence(AbsenceModel absence)
        {
            AbsenceRepo repo = new AbsenceRepo();

            if (String.IsNullOrEmpty(absence.startTime))
            {
                absence.startTime = "NULL";
            }
            if (String.IsNullOrEmpty(absence.endTime))
            {
                absence.endTime = "NULL";
            }
            if (String.IsNullOrEmpty(absence.endTime))
            {
                absence.endTime = "NULL";
            }
            if (String.IsNullOrEmpty(absence.reason))
            {
                absence.reason = "NULL";
            }
            if (String.IsNullOrEmpty(absence.endDate))
            {
                absence.endDate = "NULL";
            }
            if (Validator.validateAbsenceForSaving(absence).Count == 0)
            {
                return(repo.saveAbsence(absence));
            }
            return(false);
        }
Exemple #2
0
        public async Task <ActionResult> EditAsync(int id, AbsenceModel absence)
        {
            try
            {
                CompteModel compte = _compteService.GetConnectedCompte(HttpContext.Session);

                if (!ModelState.IsValid)
                {
                    float soldeCongee = await _absenceService.GetSoldeCongee(HttpContext.Session, compte.User.Id.GetValueOrDefault(0));

                    ViewBag.soldeCongee = soldeCongee;

                    return(View());
                }
                absence.Status = AbsenceStatus.AValider;
                absence.User   = compte.User;
                await _absenceService.UpdateAsync(HttpContext.Session, absence);

                return(RedirectToAction("Index"));
            }
            catch
            {
                CompteModel compte      = _compteService.GetConnectedCompte(HttpContext.Session);
                float       soldeCongee = await _absenceService.GetSoldeCongee(HttpContext.Session, compte.User.Id.GetValueOrDefault(0));

                ViewBag.soldeCongee = soldeCongee;

                return(View());
            }
        }
Exemple #3
0
        public async Task <ActionResult <AbsenceModel> > Put(int employeeId, int Id, AbsenceModel updatedModel)
        {
            try
            {
                var currentAbsence = await _repository.GetAbsenceAsync(employeeId, Id);

                if (currentAbsence == null)
                {
                    return(NotFound($"Could not find Absence with Id of {Id}"));
                }

                _mapper.Map(updatedModel, currentAbsence);

                if (await _repository.UpdateAbsenceAsync(employeeId, currentAbsence))
                {
                    return(_mapper.Map <AbsenceModel>(currentAbsence));
                }
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(this.StatusCode(StatusCodes.Status500InternalServerError, "Database Failure"));
            }

            return(BadRequest());
        }
        public void TakeRegister(List <int> StudentsInLesson)
        {
            if (lessonModel.RegisterTaken)
            {
                Console.WriteLine("Register already taken for this lesson");
                return;
            }
            else
            {
                //Get list of students not attending lesson who are signed up
                List <int> StudentsSignedUp = Database.LessonSignUps[lessonModel.LessonType];
                List <int> AbsentStudents   = StudentsSignedUp.Except(StudentsInLesson).ToList();

                foreach (int s in AbsentStudents)
                {
                    Database.NumberOfAbsences += 1;
                    AbsenceModel absence = new AbsenceModel();
                    absence.Id            = Database.NumberOfAbsences;
                    absence.LessonId      = lessonModel.id;
                    absence.StudentId     = s;
                    absence.HasApologised = false;
                    Database.CreateAbsence(absence);
                    Console.WriteLine("Student {0} is absent today", s);
                }

                lessonModel.RegisterTaken = true;
                LessonModel lesson = Database.GetLessson(lessonModel.id);
                lesson.RegisterTaken = lessonModel.RegisterTaken;
                Database.UpdateLesson(lesson);
            }
        }
        /**
         * Method wrapps the data from the presenters form into a model
         *
         * @return absence model
         */
        private AbsenceModel getAbsenceModelFromPresenterForm()
        {
            AbsenceModel absence = new AbsenceModel();

            absence.endTime   = endTimePicker.Value.ToString("HH:mm:ss");
            absence.startTime = startTimePicker.Value.ToString("HH:mm:ss");
            if (wholeDayCheckBox.Checked || (!wholeDayCheckBox.Checked && (startTimePicker.Value.TimeOfDay == endTimePicker.Value.TimeOfDay) && (startDatePicker.Value.Date == endDatePicker.Value.Date)))
            {
                absence.startTime = "NULL";
                absence.endTime   = "NULL";
            }
            else
            {
                absence.startTime = startTimePicker.Value.ToString("HH:mm:ss");
                absence.endTime   = endTimePicker.Value.ToString("HH:mm:ss");
            }
            absence.reason    = reasonText.Text;
            absence.staffId   = (allTheDoctors.Enabled ? (int)allTheDoctors.SelectedValue : -1);
            absence.startDate = startDatePicker.Value.ToString("yyyy-MM-dd");
            absence.endDate   = endDatePicker.Value.ToString("yyyy-MM-dd");
            if (singleDayCheckBox.Checked || (!singleDayCheckBox.Checked && startDatePicker.Value.Date == endDatePicker.Value.Date))
            {
                absence.endDate = "NULL";
            }
            return(absence);
        }
Exemple #6
0
        public async Task <ActionResult <AbsenceModel> > Post(int employeeId, AbsenceModel model)
        {
            try
            {
                //Make sure AbsenceId is not already taken
                var existing = await _repository.GetAbsenceAsync(employeeId, model.Id);

                if (existing != null)
                {
                    return(BadRequest("Absence Id in Use"));
                }

                //map
                var Absence = _mapper.Map <Absence>(model);

                //save and return
                if (!await _repository.StoreNewAbsenceAsync(employeeId, Absence))
                {
                    return(BadRequest("Bad request, could not create record!"));
                }
                else
                {
                    var location = _linkGenerator.GetPathByAction("Get",
                                                                  "Absence",
                                                                  new { employeeId = Absence.EmployeeId, Absence.Id });

                    return(Created(location, _mapper.Map <AbsenceModel>(Absence)));
                }
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(this.StatusCode(StatusCodes.Status500InternalServerError, "Database Failure"));
            }
        }
Exemple #7
0
        public async Task <ActionResult> DeleteAsync(int id)
        {
            AbsenceModel absence = await _absenceService.GetAsync(HttpContext.Session, id);

            ViewData.Model = absence;

            return(View());
        }
Exemple #8
0
 public static Absence ToDataBaseEntity(this AbsenceModel absence)
 {
     return(new Absence
     {
         Id = absence.Id,
         AbsenceType = absence.Name
     });
 }
Exemple #9
0
        private void AddSingleAbsence()
        {
            var newAbsence = AbsenceModel.CreateNewAbsence(this.AcolyteId);

            newAbsence.DateAndTime = SingleAbsenceWholeDay ? SingleAbsenceDate : SingleAbsenceDateAndTime;
            newAbsence.WholeDay    = SingleAbsenceWholeDay;
            this.CloseAction?.Invoke();
        }
 public AbsenceDetails(Form callerForm, AbsenceModel absence = null)
 {
     InitializeComponent();
     CurrentAbsence                 = absence ?? new AbsenceModel();
     CallerForm                     = callerForm;
     CallerForm.Enabled             = false;
     AbsenceTypeComboBox.DataSource = AbsenceTracker.AbsenceTypes;
     RefreshFormFields();
 }
Exemple #11
0
 public void DeleteAbsence(AbsenceModel absence)
 {
     using (IDbConnection connection = ConnectionFactory())
     {
         var param = new DynamicParameters();
         param.Add($"{ParamChar}absence_id", int.Parse(absence.Id));
         connection.Execute("dbo.sp_delete_absence", param, commandType: CommandType.StoredProcedure);
     }
 }
Exemple #12
0
        public async Task <string> SendRunningLateMessage(string RunningMessage, int AbsenceId)
        {
            try
            {
                //Send Notification here
                AbsenceModel absenceDetail = _absenceService.GetAbsenceDetailByAbsenceId(AbsenceId);
                IEnumerable <SubzzV2.Core.Entities.User> users = _userService.GetAdminListByAbsenceId(AbsenceId);
                Message message = new Message();
                message.ConfirmationNumber = absenceDetail.ConfirmationNumber;
                message.AbsenceId          = absenceDetail.AbsenceId;
                message.StartTime          = DateTime.ParseExact(Convert.ToString(absenceDetail.StartTime), "HH:mm:ss",
                                                                 CultureInfo.InvariantCulture).ToSubzzTime();
                message.EndTime = DateTime.ParseExact(Convert.ToString(absenceDetail.EndTime), "HH:mm:ss",
                                                      CultureInfo.InvariantCulture).ToSubzzTime();
                message.StartDate    = Convert.ToDateTime(absenceDetail.StartDate).ToString("D");
                message.EndDate      = Convert.ToDateTime(absenceDetail.EndDate).ToString("D");
                message.StartTimeSMS = DateTime.ParseExact(Convert.ToString(absenceDetail.StartTime), "HH:mm:ss",
                                                           CultureInfo.InvariantCulture).ToSubzzTimeForSms();
                message.EndTimeSMS = DateTime.ParseExact(Convert.ToString(absenceDetail.EndTime), "HH:mm:ss",
                                                         CultureInfo.InvariantCulture).ToSubzzTimeForSms();
                message.EmployeeName       = absenceDetail.EmployeeName;
                message.Position           = absenceDetail.PositionDescription;
                message.Subject            = absenceDetail.SubjectDescription;
                message.Grade              = absenceDetail.Grade;
                message.Location           = absenceDetail.AbsenceLocation;
                message.School             = absenceDetail.OrganizationName;
                message.Notes              = absenceDetail.SubstituteNotes;
                message.SubstituteName     = absenceDetail.SubstituteName;
                message.Reason             = absenceDetail.AbsenceReasonDescription;
                message.Photo              = absenceDetail.SubstituteProfilePicUrl;
                message.AttachedFileName   = absenceDetail.AttachedFileName;
                message.FileContentType    = absenceDetail.FileContentType;
                message.Duration           = absenceDetail.DurationType == 1 ? "Full Day" : absenceDetail.DurationType == 2 ? "First Half" : absenceDetail.DurationType == 3 ? "Second Half" : "Custom";
                message.RunningLateMessage = RunningMessage;
                //Notification notification = new Notification();
                Task.Run(() => SendRunningLateEmail(users, message, absenceDetail));

                // Audit Log
                //var audit = new AuditLog
                //{
                //    UserId = CurrentUser.Id,
                //    EntityId = absenceDetail.ConfirmationNumber.ToString(),
                //    EntityType = AuditLogs.EntityType.Absence,
                //    ActionType = AuditLogs.ActionType.Accepted,
                //    DistrictId = CurrentUser.DistrictId,
                //    OrganizationId = CurrentUser.OrganizationId == "-1" ? null : CurrentUser.OrganizationId
                //};
                //_audit.InsertAuditLog(audit);
                return("Sent");
            }

            catch (Exception ex)
            {
            }
            return(null);
        }
        public void validateAbsenceForSavingTestInvalidData()
        {
            AbsenceModel absence = new AbsenceModel();

            absence.startDate = "2013-04-06";
            int expected = 1;
            int result   = Validator.validateAbsenceForSaving(absence).Count;

            Assert.AreEqual(expected, result);
        }
Exemple #14
0
 private void AddAbsenceByRange()
 {
     for (DateTime absenceDate = RangeAbsenceFromDate; absenceDate <= RangeAbsenceUntilDate; absenceDate = absenceDate.AddDays(1))
     {
         var newAbsence = AbsenceModel.CreateNewAbsence(this.AcolyteId);
         newAbsence.DateAndTime = absenceDate;
         newAbsence.WholeDay    = true;
     }
     this.CloseAction?.Invoke();
 }
Exemple #15
0
 public static Absence ToDomain(AbsenceModel model)
 {
     return(new Absence
     {
         Date = model.Date,
         Hours = model.Hours,
         UserName = model.UserName,
         AbsenceCategory = model.AbsenceCategory
     });
 }
        private AbsenceModel GetAbsence(int id)
        {
            AbsenceModel output = new AbsenceModel();

            output.absid = id;
            output.date  = GetRandomDate();
            output.type  = GetRandomItem(AbsenceTypes);

            return(output);
        }
Exemple #17
0
        /**
         * Method validates if absence model meet the requirements for saving
         *
         * @param abcence AbsenceModel
         * @return list of errors
         */
        public static List <string> validateAbsenceForSaving(AbsenceModel absence)
        {
            List <string> errors = new List <string>();

            if (DateHelper.getDateTimeObjectFromString(absence.startDate).Date < DateTime.Today.Date)
            {
                errors.Add("startDate");
            }
            return(errors);
        }
Exemple #18
0
 private void AbsenceByService()
 {
     foreach (var selectedAbsence in AllServicesForAbsences.Where(x => x.HasAbsenceForServiceSelected))
     {
         var newAbsence = AbsenceModel.CreateNewAbsence(this.AcolyteId);
         newAbsence.DateAndTime = selectedAbsence.ServiceDateAndTime;
         newAbsence.WholeDay    = false;
     }
     this.CloseAction?.Invoke();
 }
Exemple #19
0
        public void SendEmailAndSmsNotificationToPreferredSubstitute(PreferredSubstituteModel preferredSchoolModel)
        {
            AbsenceModel absenceDetail = _absenceService.GetAbsenceDetailByAbsenceId(preferredSchoolModel.AbsenceId);
            Message      message       = new Message();

            message.ConfirmationNumber = absenceDetail.ConfirmationNumber;
            message.AbsenceId          = absenceDetail.AbsenceId;
            message.StartTime          = DateTime.ParseExact(Convert.ToString(absenceDetail.StartTime), "HH:mm:ss",
                                                             CultureInfo.InvariantCulture).ToSubzzTime();
            message.EndTime = DateTime.ParseExact(Convert.ToString(absenceDetail.EndTime), "HH:mm:ss",
                                                  CultureInfo.InvariantCulture).ToSubzzTime();
            message.StartDate    = Convert.ToDateTime(absenceDetail.StartDate).ToString("D");
            message.EndDate      = Convert.ToDateTime(absenceDetail.EndDate).ToString("D");
            message.StartTimeSMS = DateTime.ParseExact(Convert.ToString(absenceDetail.StartTime), "HH:mm:ss",
                                                       CultureInfo.InvariantCulture).ToSubzzTimeForSms();
            message.EndTimeSMS = DateTime.ParseExact(Convert.ToString(absenceDetail.EndTime), "HH:mm:ss",
                                                     CultureInfo.InvariantCulture).ToSubzzTimeForSms();
            if (message.StartDate == message.EndDate)
            {
                message.DateToDisplayInSMS = Convert.ToDateTime(absenceDetail.StartDate).ToSubzzDateForSMS();
            }
            else
            {
                message.DateToDisplayInSMS = Convert.ToDateTime(absenceDetail.StartDate).ToSubzzShortDateForSMS() + "-" + Convert.ToDateTime(absenceDetail.EndDate).ToSubzzDateForSMS();
            }
            if (!string.IsNullOrEmpty(absenceDetail.OrganizationPhoneNumber) && absenceDetail.OrganizationPhoneNumber.Length > 5)
            {
                message.FromPhoneNumber = absenceDetail.OrganizationPhoneNumber;
            }
            else
            {
                message.FromPhoneNumber = absenceDetail.DistrictPhoneNumber;
            }
            message.EmployeeName     = absenceDetail.EmployeeName;
            message.Position         = absenceDetail.PositionDescription;
            message.Subject          = absenceDetail.SubjectDescription;
            message.Grade            = absenceDetail.Grade;
            message.Location         = absenceDetail.AbsenceLocation;
            message.School           = absenceDetail.OrganizationName;
            message.Notes            = absenceDetail.SubstituteNotes;
            message.SubstituteName   = absenceDetail.SubstituteName;
            message.Reason           = absenceDetail.AbsenceReasonDescription;
            message.Duration         = absenceDetail.DurationType == 1 ? "Full Day" : absenceDetail.DurationType == 2 ? "First Half" : absenceDetail.DurationType == 3 ? "Second Half" : "Custom";
            message.AttachedFileName = absenceDetail.AttachedFileName;
            message.FileContentType  = absenceDetail.FileContentType;
            message.Photo            = absenceDetail.EmployeeProfilePicUrl;
            message.Password         = preferredSchoolModel.Password;
            message.UserName         = preferredSchoolModel.SubstituteName;
            message.SendTo           = preferredSchoolModel.EmailId;
            message.PhoneNumber      = preferredSchoolModel.SubstitutePhoneNumber;
            //For Substitutes
            message.TemplateId = 1;
            CommunicationContainer.EmailProcessor.ProcessAsync(message, (MailTemplateEnums)message.TemplateId);
            CommunicationContainer.SMSProcessor.Process(message, (MailTemplateEnums)message.TemplateId);
        }
Exemple #20
0
        /**
         * Method saves absence model to absence table in the database
         *
         * @param absence absence model
         * @return result of saving
         */
        public bool saveAbsence(AbsenceModel absence)
        {
            string query = "INSERT INTO " + table + " (`startTime`, `endTime`, `reason`, `staffId`, `startDate`, `endDate`) " +
                           " VALUES ( " + (absence.startTime != "NULL" ? this.getStringInMySqlInsertableFormat(absence.startTime) : absence.startTime) + ", "
                           + (absence.endTime != "NULL" ? this.getStringInMySqlInsertableFormat(absence.endTime) : absence.endTime) + ", "
                           + (absence.reason != "NULL" ? this.getStringInMySqlInsertableFormat(absence.reason) : absence.reason) + ", "
                           + (absence.staffId == -1 ? "NULL" : absence.staffId.ToString()) + ", "
                           + this.getStringInMySqlInsertableFormat(absence.startDate) + ", "
                           + (absence.endDate != "NULL" ? this.getStringInMySqlInsertableFormat(absence.endDate) : absence.endDate) + " )";

            return(this.db.Execute(query));
        }
Exemple #21
0
        public async Task <ActionResult> DeleteAsync(int id, AbsenceModel absence)
        {
            try
            {
                await _absenceService.DeleteAsync(HttpContext.Session, id);

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
Exemple #22
0
        public async Task <ActionResult> RefuseAsync(int id)
        {
            AbsenceModel absence = await _absenceService.GetAsync(HttpContext.Session, id);

            absence.Status = AbsenceStatus.Refuse;
            await _absenceService.UpdateAsync(HttpContext.Session, absence);

            await _mailService.SendMailAsync(HttpContext.Session, absence.User.Email, "[Atlas] Demande de congé refusé", "RefusDemandeConge.html", new Dictionary <string, string> {
                { "#_USER_FULLNAME_#", absence.User.FullName }
            });

            return(RedirectToAction("Index"));
        }
Exemple #23
0
        public async Task <ActionResult> EditAsync(int id)
        {
            CompteModel compte      = _compteService.GetConnectedCompte(HttpContext.Session);
            float       soldeCongee = await _absenceService.GetSoldeCongee(HttpContext.Session, compte.User.Id.GetValueOrDefault(0));

            ViewBag.soldeCongee = soldeCongee;

            AbsenceModel absence = await _absenceService.GetAsync(HttpContext.Session, id);

            ViewData.Model = absence;

            return(View());
        }
Exemple #24
0
 public IEnumerable <AbsenceModel> GetAbsencesForSharedCalendar(AbsenceModel model)
 {
     using (var connection = base.GetConnection)
     {
         var sql         = "[Absence].[GetAbsencesForSharedCalendar]";
         var queryParams = new DynamicParameters();
         queryParams.Add("@StartDate", model.StartDate);
         queryParams.Add("@EndDate", model.EndDate);
         queryParams.Add("@UserId", model.EmployeeId);
         queryParams.Add("@DistrictId", model.DistrictId);
         queryParams.Add("@OrganizationId", model.OrganizationId);
         return(connection.Query <AbsenceModel>(sql, queryParams, commandType: System.Data.CommandType.StoredProcedure).ToList());
     }
 }
        public IHttpActionResult Post(AbsenceModel absence)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (!_absenceHandler.Post(absence))
            {
                return(BadRequest("Incorrect Datainput"));
            }

            return(Ok());
        }
        public IActionResult ResendJob([FromBody] AbsenceModel model)
        {
            try
            {
                AbsenceModel absenceDetail = _absenceService.GetAbsenceDetailByAbsenceId(model.AbsenceId);
                IEnumerable <SubzzV2.Core.Entities.User> users = _service.GetAdminListByAbsenceId(model.AbsenceId);
                Message message = new Message();
                message.ConfirmationNumber = absenceDetail.ConfirmationNumber;
                message.StartTime          = DateTime.ParseExact(Convert.ToString(absenceDetail.StartTime), "HH:mm:ss",
                                                                 CultureInfo.InvariantCulture).ToSubzzTime();
                message.EndTime = DateTime.ParseExact(Convert.ToString(absenceDetail.EndTime), "HH:mm:ss",
                                                      CultureInfo.InvariantCulture).ToSubzzTime();
                message.StartDate    = Convert.ToDateTime(absenceDetail.StartDate).ToString("D");
                message.EndDate      = Convert.ToDateTime(absenceDetail.EndDate).ToString("D");
                message.StartTimeSMS = DateTime.ParseExact(Convert.ToString(absenceDetail.StartTime), "HH:mm:ss",
                                                           CultureInfo.InvariantCulture).ToSubzzTimeForSms();
                message.EndTimeSMS = DateTime.ParseExact(Convert.ToString(absenceDetail.EndTime), "HH:mm:ss",
                                                         CultureInfo.InvariantCulture).ToSubzzTimeForSms();
                if (message.StartDate == message.EndDate)
                {
                    message.DateToDisplayInSMS = Convert.ToDateTime(absenceDetail.StartDate).ToSubzzDateForSMS();
                }
                else
                {
                    message.DateToDisplayInSMS = Convert.ToDateTime(absenceDetail.StartDate).ToSubzzShortDateForSMS() + "-" + Convert.ToDateTime(absenceDetail.EndDate).ToSubzzDateForSMS();
                }
                message.EmployeeName   = absenceDetail.EmployeeName;
                message.Position       = absenceDetail.PositionDescription;
                message.Subject        = absenceDetail.SubjectDescription;
                message.Grade          = absenceDetail.Grade;
                message.Location       = absenceDetail.AbsenceLocation;
                message.Notes          = absenceDetail.SubstituteNotes;
                message.SubstituteName = absenceDetail.SubstituteName;
                message.School         = absenceDetail.OrganizationName;
                message.Photo          = absenceDetail.EmployeeProfilePicUrl;
                message.Duration       = absenceDetail.DurationType == 1 ? "Full Day" : absenceDetail.DurationType == 2 ? "First Half" : absenceDetail.DurationType == 3 ? "Second Half" : "Custom";

                message.TemplateId = 10;
                message.Photo      = absenceDetail.EmployeeProfilePicUrl;
                Task.Run(() => SendEmails(users, message, absenceDetail));
                _absenceService.UpdateAbsenceResendCounter(model.AbsenceId);
            }
            catch (Exception ex)
            {
            }
            finally
            {
            }
            return(Json("success"));
        }
Exemple #27
0
 public AbsenceModel CreateAbsence(AbsenceModel model)
 {
     using (var connection = base.GetConnection)
     {
         var sql         = "[Absence].[CreateAbsence]";
         var queryParams = new DynamicParameters();
         queryParams.Add("@AbsenceCreatedByEmployeeId", model.AbsenceCreatedByEmployeeId);
         queryParams.Add("@EmployeeId", model.EmployeeId);
         queryParams.Add("@StartDate", model.StartDate);
         queryParams.Add("@EndDate", model.EndDate);
         queryParams.Add("@StartTime", model.StartTime);
         queryParams.Add("@EndTime", model.EndTime);
         queryParams.Add("@AbsenceReasonId", model.AbsenceReasonId);
         queryParams.Add("@DurationType", model.DurationType);
         queryParams.Add("@PositionId", model.PositionId);
         queryParams.Add("@OrganizationId", model.OrganizationId);
         queryParams.Add("@Status", model.Status);
         queryParams.Add("@DistrictId", model.DistrictId);
         queryParams.Add("@RegionId", -1);
         //If Length is greater than 10 ,it means its not direct assign so we are not saving substitute ID
         queryParams.Add("@SubstituteId", model.SubstituteId.Length > 10 ? "-1" : model.SubstituteId.Length == 10 && model.AbsenceScope == 1 ? "-1":  model.SubstituteId);
         queryParams.Add("@SubstituteRequired", model.SubstituteRequired);
         queryParams.Add("@ApprovalRequired", model.IsApprovalRequired);
         queryParams.Add("@AbsenceScope", model.AbsenceScope);
         queryParams.Add("@PayrollNotes", model.PayrollNotes);
         queryParams.Add("@SubstituteNotes", model.SubstituteNotes);
         queryParams.Add("@AnyAttachment", model.AnyAttachment);
         queryParams.Add("@OnlyCertified", model.OnlyCertified);
         queryParams.Add("@OnlySubjectSpecialist", model.OnlySubjectSpecialist);
         queryParams.Add("@TeachingLevelId", model.TeachingLevelId);
         queryParams.Add("@SpecialityTypeId", model.SpecialityTypeId);
         var absenceConfirmation = connection.Query <AbsenceModel>(sql, queryParams, commandType: System.Data.CommandType.StoredProcedure).FirstOrDefault();
         model.AbsenceId          = absenceConfirmation.AbsenceId;
         model.ConfirmationNumber = absenceConfirmation.ConfirmationNumber;
         if (model.AnyAttachment && model.AbsenceId > 0)
         {
             sql         = "[Absence].[InsertAttachment]";
             queryParams = new DynamicParameters();
             queryParams.Add("@AbsenceId", model.AbsenceId);
             queryParams.Add("@AttachedFileName", model.AttachedFileName);
             queryParams.Add("@OriginalFileName", model.OriginalFileName);
             queryParams.Add("@CreateDate", DateTime.Now);
             queryParams.Add("@Extension", model.FileExtention);
             queryParams.Add("@ContentType", model.FileContentType);
             connection.ExecuteScalar <int>(sql, queryParams, commandType: System.Data.CommandType.StoredProcedure);
         }
     }
     return(model);
 }
        public static void SaveAbsence(AbsenceModel absence)
        {
            if (absence.AbsenceType.IsOvertime)
            {
                absence.DaysWorkedOnHolidays = absence.DaysTotal;
            }
            var isNew = absence.Id is null;

            Database.SaveAbsence(absence);
            if (isNew)
            {
                CurrentUser.Absences.Add(absence);
            }
            CurrentUser.Absences.Sort();
        }
Exemple #29
0
        /**
         * Public method for saving an absence
         *
         * @param absence absence model
         * @return result of saving
         */
        public bool save(AbsenceModel absence)
        {
            bool result;

            if (absence.staffId != 0)
            {
                try {
                    return(result = this.saveAbsence(absence));
                }
                catch (Exception e) {
                    Console.WriteLine(e);
                }
            }
            return(false);
        }
 private void SelectionExecute(AbsenceModel arg)
 {
     arg.Clicked = "Selected";
     foreach (var item in ListItems)
     {
         if (item.Clicked == "Selected")
         {
             item.IsExpand = !item.IsExpand;
             item.Clicked  = string.Empty;
         }
         else
         {
             item.Clicked = string.Empty;
         }
     }
 }