/** * 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); }
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()); } }
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); }
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")); } }
public async Task <ActionResult> DeleteAsync(int id) { AbsenceModel absence = await _absenceService.GetAsync(HttpContext.Session, id); ViewData.Model = absence; return(View()); }
public static Absence ToDataBaseEntity(this AbsenceModel absence) { return(new Absence { Id = absence.Id, AbsenceType = absence.Name }); }
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(); }
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); } }
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); }
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(); }
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); }
/** * 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); }
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(); }
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); }
/** * 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)); }
public async Task <ActionResult> DeleteAsync(int id, AbsenceModel absence) { try { await _absenceService.DeleteAsync(HttpContext.Session, id); return(RedirectToAction("Index")); } catch { return(View()); } }
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")); }
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()); }
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")); }
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(); }
/** * 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; } } }