public JsonResult SaveNotifier(string area, string centro, string depto, string approver, [FromServices] IRepository <EmployeeNotify> employeeNotify, [FromServices] IOrganigramaModelFactory organigramaModelFactory) { int order = 1; var aprovOrder = employeeNotify.SearhItemsFor(f => f.Area.Equals(area) && f.Centro.Equals(centro) && f.Departamento.Equals(depto)); if (aprovOrder.Any()) { order = aprovOrder.Count() + 1; } var emp = organigramaModelFactory.GetEmployeeData(approver); var empNotify = new EmployeeNotify() { Area = area, Centro = centro, Departamento = depto, Orden = order, Puesto = emp.GeneralInfo.JobTitle, RowGuid = Guid.Parse(emp.HierarchyGuid) }; employeeNotify.Create(empNotify); return(Json("ok")); }
public async Task <EmployeeNotify> GetEmployeeDetails([FromUri] string employeeNumber, [FromUri] int?timeCategoryId) { EmployeeNotify employeeNotif; if (employeeNumber == null || timeCategoryId == null) { var error = new Error { Code = "Error", Message = "EmployeeNumber or TimeCategoryId is not set" }; employeeNotif = new EmployeeNotify { Error = error }; return(employeeNotif); } int?employeeId = await _dailyTimeRepo.SelectByEmployeeNumber(employeeNumber); if (employeeId == null) { var error = new Error { Code = "Error", Message = "Employee Number do not exist" }; employeeNotif = new EmployeeNotify { Error = error }; return(employeeNotif); } var notify = await _dailyTimeRepo.GetEmplopyeeNotification(employeeId, timeCategoryId); employeeNotif = new EmployeeNotify { IsSuspended = notify.IsSuspended, IsResign = notify.IsResign, IsTimeCheck = notify.IsTimeCheck, Employee = await _employeeRepo.SelectById(employeeId), DailyTimeRecord = await _dailyTimeRepo.GetDailyTimeRecordTopFive(employeeId) }; if (employeeNotif.IsSuspended || employeeNotif.IsTimeCheck || employeeNotif.IsResign) { var error = new Error { Code = "Error", Message = "Employee is Suspended/Resign/Have already record" }; employeeNotif.Error = error; return(employeeNotif); } var model = new DailyTimeRecord { DateCreated = DateTime.Now, EmployeeId = employeeId, TimeCategoryId = timeCategoryId, Time = DateTime.Now }; await _dailyTimeRepo.Insert(model); employeeNotif.DailyTimeRecord = await _dailyTimeRepo.GetDailyTimeRecordTopFive(employeeId); return(employeeNotif); }