public async Task <IActionResult> Create(DismissalViewModel model) { if (!ModelState.IsValid) { return(new JsonResult(new { isSucceeded = false, errors = ModelState.Errors() })); } try { var appRecruit = await _appDb.Recruits.FirstOrDefaultAsync(m => m.Id == model.RecruitId); var zRecruit = await _zarnicaDb.Recruits .Include(m => m.Events) .FirstOrDefaultAsync(m => m.Id == appRecruit.RecruitId); var dismissal = new Dismissal { RecruitId = model.RecruitId, SendDismissalDate = model.SendDismissalDate, ReturnDate = model.ReturnDate, Notice = model.Notice, LastEventCode = zRecruit.LastEvent.EventCode, LastEventDate = zRecruit.LastEvent.Date }; await _appDb.Dismissals.AddAsync(dismissal); await _appDb.SaveChangesAsync(); return(new JsonResult(new { isSucceeded = true })); } catch { return(new JsonResult(new { isSucceeded = false, errors = ModelState.Errors() })); } }
public async Task <IActionResult> EmployeeDismissal(Dismissal model) { if (ModelState.IsValid) { var employee = await _context.Employees.FindAsync(model.EmployeeId); if (employee == null) { return(NotFound()); } employee.IsDismissed = true; model.Id = 0; model.HRManager = await _userManager.GetUserAsync(User); model.DateOfAction = DateTime.Now; _context.Employees.Update(employee); await _context.Dismissals.AddAsync(model); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(model)); }
public ActionResult Save([Bind(Include = "EmployeeId,Name,Surname,MiddleName,PasportData,PhoneNumber,Graduate,BirthDate,Address,Languages,LastJob,СomeDate,ContractTerm,DepartmentId")] Employee employee) { Dismissal dis = new Dismissal(); if (ModelState.IsValid) { dis.Address = employee.Address; dis.BirthDate = employee.BirthDate; dis.ContractTerm = employee.ContractTerm; dis.Employee = employee; dis.Graduate = employee.Graduate; dis.Languages = employee.Languages; dis.MiddleName = employee.MiddleName; dis.Name = employee.Name; dis.PasportData = employee.PasportData; dis.PhoneNumber = employee.PhoneNumber; dis.Surname = employee.Surname; dis.СomeDate = employee.СomeDate; dis.LastJob = employee.LastJob; dis.DisDate = new DateTime(2018, 12, 12); db.Dismissals.Add(dis); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.DepartmentId = new SelectList(db.Departments, "DepartmentId", "DepartmentCity", dis.EmployeeId); return(View(dis)); }
public int AddDismissal(Dismissal data) { //проверяем был ли сотрудник принят на работу (имеется запись в таблице Recruitment) if (!_context.Recruitment.Any(x => x.Deleted == false && x.employeeId == data.employeeId)) { //нет записи - значит еще не был принят, уволить нельзя return(-2); } //проверяем был ли сотрудник уволен ранее (имеется запись в таблице Dismissal) if (_context.Dismissal.Any(x => x.deleted == false && x.employeeId == data.employeeId)) { //уже уволен - уволить повторно нельзя return(-1); } //добавлям заипсь об уволнении сотрудника (в таблицу Dismissal) var res = _context.Dismissal.Add(data); //сохряняем изменения _context.SaveChanges(); //вернуть id новой записи в таблице Dismissal return(res.Entity.id); }
//by laneId private ScannedStudent AddStudentToLane(DataSeed ds, Dismissal dismissal, int laneId, ScannedStudent scannedStudent) { var lane2FlightObj = ScannerFlights.FirstOrDefault(sf => sf.LaneId == laneId); lane2FlightObj = CheckIsLane(ds, dismissal.UserId, laneId, lane2FlightObj); //check isLanefull if (CountCarInLane(ds, dismissal.UserId, lane2FlightObj, scannedStudent.ParentLicense)) { lane2FlightObj = ScannerFlights.FirstOrDefault(sf => sf.LaneId == laneId); } if (ds.IsCarExistInPrevLane(lane2FlightObj.Flight2LaneId, scannedStudent.ParentLicense)) { lane2FlightObj.CountCarsInLane -= 1; } dismissal.FlightLaneId = lane2FlightObj.Flight2LaneId; scannedStudent.FlightNumber = lane2FlightObj.FlightNumber; scannedStudent.FligthId = lane2FlightObj.FlightId; lane2FlightObj.CountCarsInLane += 1; dismissal.CarNumber = lane2FlightObj.CountCarsInLane; scannedStudent.CardId = ds.AddStudentToDismissal(dismissal); if (scannedStudent.CardId == 0) { lane2FlightObj.CountCarsInLane -= 1; Status = "Barcode did not save. Please, try to scanne again!"; return(null); } scannedStudent.Lane = Lanes.Where(p => p.Id == lane2FlightObj.LaneId).FirstOrDefault(); return(scannedStudent); }
public ActionResult DeleteConfirmed(Guid id) { Dismissal dismissal = db.Dismissals.Find(id); db.Dismissals.Remove(dismissal); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "dismissalid,dismissalcode,dismissaldesc")] Dismissal dismissal) { if (ModelState.IsValid) { dismissal.lastupdated = DateTime.Now; db.Entry(dismissal).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(dismissal)); }
public ActionResult Edit([Bind(Include = "DismissalId,Name,Surname,MiddleName,PasportData,PhoneNumber,Graduate,BirthDate,Address,Languages,LastJob,СomeDate,ContractTerm,DisDate,EmployeeId")] Dismissal dismissal) { if (ModelState.IsValid) { db.Entry(dismissal).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.EmployeeId = new SelectList(db.Employees, "EmployeeId", "Name", dismissal.EmployeeId); return(View(dismissal)); }
private string GenerateDismissalRequestContent(PersonnelDto personnel , Dismissal dismissal, RequestDuration duration, DateTime from, DateTime to) { return("request type : " + " " + (duration == RequestDuration.Daily ? "daily" : "hourly") + "dismissal" + " " + dismissal.Title + ", requested by: " + (personnel.Gender == Gender.Male ? "Mr." : "Mrs.") + "" + personnel.FullName + $", from date: {from.ToShortDateString()} to date:" + $" {to.ToShortDateString()}."); }
public bool UpdateDismissal(int id, Dismissal data) { var res = _context.Dismissal.FirstOrDefault(x => x.id == id); if (res == null) { return(false); } res.dateOfDismissal = data.dateOfDismissal; res.cause = data.cause; _context.SaveChanges(); return(true); }
public ActionResult Create([Bind(Include = "dismissalid,dismissalcode,dismissaldesc")] Dismissal dismissal) { if (ModelState.IsValid) { dismissal.dismissalid = Guid.NewGuid(); dismissal.lastupdated = DateTime.Now; db.Dismissals.Add(dismissal); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(dismissal)); }
// GET: Dismissals/Delete/5 public ActionResult Delete(Guid?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Dismissal dismissal = db.Dismissals.Find(id); if (dismissal == null) { return(HttpNotFound()); } return(View(dismissal)); }
// GET: Dismissals/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Dismissal dismissal = db.Dismissals.Find(id); if (dismissal == null) { return(HttpNotFound()); } ViewBag.EmployeeId = new SelectList(db.Employees, "EmployeeId", "Name", dismissal.EmployeeId); return(View(dismissal)); }
public IActionResult PutDismissal(int id, [FromBody] Dismissal data) { try { var res = _repository.UpdateDismissal(id, data); if (!res) { return(Conflict(409)); } return(Ok(res)); } catch (Exception error) { return(BadRequest(error)); } }
public void TestStringConversion(int randomValue, string expectedValue, string caughtBy, string bowler) { Mock <IRandomNumberGenerator> mockRand = new Mock <IRandomNumberGenerator>(); mockRand.Setup(x => x.GetRandomNumber(It.IsAny <int>(), It.IsAny <int>())).Returns(randomValue); Mock <Bowler> mockBowler = new Mock <Bowler>(); mockBowler.Setup(x => x.Name()).Returns(bowler); Mock <Team> mockTeam = new Mock <Team>(); mockTeam.Setup(x => x.GetPlayer(It.IsAny <int>())).Returns(caughtBy); mockTeam.Setup(x => x.NumberPlayers()).Returns(11); Dismissal dismissal = new Dismissal(mockBowler.Object, mockTeam.Object, mockRand.Object); Assert.Equal(expectedValue, dismissal.ToString()); }
//Altemating private ScannedStudent AddStudentAltemating(DataSeed ds, Dismissal dismissal, ScannedStudent scannedStudent) { isMoveRemoveCard = false; var laneId = Lanes.ElementAt(currentLaneNumber).Id; var lane2FlightObj = ScannerFlights.FirstOrDefault(sf => sf.LaneId == laneId); lane2FlightObj = CheckIsLane(ds, dismissal.UserId, laneId, lane2FlightObj); if (!ds.IsCarExistInPrevLane(lane2FlightObj.Flight2LaneId, scannedStudent.ParentLicense)) { currentLaneNumber = currentLaneNumber >= (Lanes.Count() - 1) ? 0 : (currentLaneNumber + 1); laneId = Lanes.ElementAt(currentLaneNumber).Id; lane2FlightObj = ScannerFlights.FirstOrDefault(sf => sf.LaneId == laneId); } else { lane2FlightObj.CountCarsInLane -= 1; } lane2FlightObj = CheckIsLane(ds, dismissal.UserId, laneId, lane2FlightObj); //check isLanefull if (CountCarInLane(ds, dismissal.UserId, lane2FlightObj, scannedStudent.ParentLicense)) { lane2FlightObj = ScannerFlights.FirstOrDefault(sf => sf.LaneId == laneId); } dismissal.FlightLaneId = lane2FlightObj.Flight2LaneId; lane2FlightObj.CountCarsInLane += 1; dismissal.CarNumber = lane2FlightObj.CountCarsInLane; scannedStudent.CardId = ds.AddStudentToDismissal(dismissal); scannedStudent.FlightNumber = lane2FlightObj.FlightNumber; scannedStudent.FligthId = lane2FlightObj.FlightId; if (scannedStudent.CardId == 0) { lane2FlightObj.CountCarsInLane -= 1; Status = "Barcode did not save. Please, try to scanne again!"; return(null); } scannedStudent.Lane = Lanes.Where(p => p.Id == lane2FlightObj.LaneId).FirstOrDefault(); return(scannedStudent); }
public void DismissalTest(int randomValue, string howOut, string caughtBy, string bowler) { Mock <IRandomNumberGenerator> mockRand = new Mock <IRandomNumberGenerator>(); mockRand.Setup(x => x.GetRandomNumber(It.IsAny <int>(), It.IsAny <int>())).Returns(randomValue); Mock <Bowler> mockBowler = new Mock <Bowler>(); mockBowler.Setup(x => x.Name()).Returns(bowler); Mock <Team> mockTeam = new Mock <Team>(); mockTeam.Setup(x => x.GetPlayer(It.IsAny <int>())).Returns(caughtBy); mockTeam.Setup(x => x.NumberPlayers()).Returns(11); Dismissal dismissal = new Dismissal(mockBowler.Object, mockTeam.Object, mockRand.Object); Assert.Equal(howOut, dismissal._howOut); Assert.Equal(caughtBy, dismissal._caughtBy); Assert.Equal(bowler, dismissal._bowler); }
public IActionResult PostDismissal(Dismissal data) { try { var res = _repository.AddDismissal(data); if (res == -1) { return(Conflict("Сотрудник уже был уволен!")); } if (res == -2) { return(Conflict("Сотрудник еще не был принят!")); } return(Ok(res)); } catch (Exception error) { return(BadRequest(error)); } }
public ScannedStudent AddScannedStudenToFlight(ScannerInput card, int userId, int schoolId) { ScannedStudent result = null; CloseLaneStatus = ""; CloseFlightId = 0; var scannedStudent = new ScannedStudent(); using (var ds = new DataSeed()) { var student = ds.GetStudentByIdForDismissal(card.StudentId, schoolId); if (student == null) { Status = "Barcode not found"; return(null); } var parent = ds.GetParentById(card.ParentId); if (parent == null) { Status = "Barcode not found"; return(null); } var parentName = ds.StudentAlredyScanned(card.StudentId, SchoolId); if (parentName != null) { Status = "This student was picked up by " + parentName; return(null); } scannedStudent.ParentId = parent.Id; scannedStudent.ParentLicense = parent.DriverLicense; scannedStudent.StudentId = student.Id; scannedStudent.ParentName = parent.Name; scannedStudent.Name = student.Name; var dismissal = new Dismissal { StudentId = student.Id, ParentId = parent.Id, ScanTime = DateTime.Now, UserId = userId }; if (ScannerFlights == null || ScannerFlights.Count() == 0) { CreateNewFlight(ds, dismissal.UserId); } if (LaneLogistic == ScannerType.MultipleScanner) { var laneId = Lanes.FirstOrDefault(l => l.UserId == dismissal.UserId).Id; result = AddStudentToLane(ds, dismissal, laneId, scannedStudent); } else if (LaneLogistic == ScannerType.SingleScanner) { if (curentLaneId == 0) { result = AddStudentAltemating(ds, dismissal, scannedStudent); // default single scanner } else { result = AddStudentToLane(ds, dismissal, curentLaneId, scannedStudent); } } }; return(result); }
private string GenerateDismissalRequestTitle(Dismissal dismissal) { return("dismissal reuqest" + " " + dismissal.Title); }
protected IList<EmailDto> SendEmailForClearanceChecklistNeedToApprove(IList<User> addresseeList, Dismissal entity) { const string subject = @"Новый обходной лист"; const string notificationEmail = "*****@*****.**"; string body = string.Format(@"Новый Обходной лист № {0} от {1} ({2}, {3}) требует вашего согласования.<br/> <a href=""https://ruscount.com:8002"">Кадровый портал</a>", entity.Number, entity.CreateDate.ToShortDateString(), entity.User.Name, entity.User.Department.Name); IList<EmailDto> dtoList = new List<EmailDto>(); /*foreach (var addressee in addresseeList) { dtoList.Add(SendEmail(addressee.Email, subject, body)); }*/ // dtoList.Add(SendEmail(addresseeList[0].Email, subject, body)); dtoList.Add(SendEmail(notificationEmail, subject, body)); return dtoList; }