// Кнопка "Добавить отпуск" private void SaveButton_Click(object sender, RoutedEventArgs e) { if (!ValidateFields()) { return; } bool result; if (_vacationId != -1) // Если это режим редактирования отпуска { var vacation = new VacationData { Id = _vacationId, Name = VacationNameTextBox.Text, StartDate = DateTime.Parse(StartDatePicker.Text), EndDate = DateTime.Parse(EndDatePicker.Text) }; result = GlobalStaticParameters.Database.SaveVacation(vacation); } else { // Добавляем отпуск result = GlobalStaticParameters.Database.AddNewVacation( VacationNameTextBox.Text, DateTime.Parse(StartDatePicker.Text), DateTime.Parse(EndDatePicker.Text), _employeeId); } if (result) { this.Close(); } }
public VacationController(ApplicationDbContext context) { _repository = new VacationData(context); }
public List <VacationData> CalcEmpVactionPerRquest(decimal EmpSerial_No, string Company_Id, string Branch_Id, string FromDate, string ToDate) { StackFrame stackFrame = new StackFrame(); MethodBase methodBase = stackFrame.GetMethod(); try { OpenEntityConnection(); List <VacationData> objectList = new List <VacationData>(); object[] param1 = { new SqlParameter("@Company_Id", Company_Id), new SqlParameter("@Branch_Id", Branch_Id), new SqlParameter("@Emp_Serial_No", EmpSerial_No), new SqlParameter("@FromDate", FromDate), }; object[] param2 = { new SqlParameter("@Company_Id", Company_Id), new SqlParameter("@Branch_Id", Branch_Id), new SqlParameter("@FromDate", FromDate), new SqlParameter("@ToDate", ToDate), }; var objlist = objPharmaEntities.Database.SqlQuery <VacationData>("exec dbo.CalcEmpAnnualVactionPerRquest @Company_Id,@Branch_Id,@Emp_Serial_No,@FromDate", param1).ToList(); var balance = objPharmaEntities.Database.SqlQuery <decimal>("select dbo.Fn_get_OfficalVacation(@Company_Id,'@Branch_Id',@FromDate,@ToDate)", param2).FirstOrDefault(); foreach (var obj in objlist) { VacationData VacationData = new VacationData(); VacationData.Company_Id = obj.Company_Id; VacationData.Branch_Id = obj.Branch_Id; VacationData.Emp_Serial_No = obj.Emp_Serial_No; VacationData.AllowedVacationBal_Col = obj.AllowedVacationBal_Col; VacationData.Net_NoOfActuallyVacationDaysTillDate_Col = obj.Net_NoOfActuallyVacationDaysTillDate_Col; VacationData.NewTransferedAfterFinishingContract_Col = obj.NewTransferedAfterFinishingContract_Col; VacationData.NoOfPerviousAnnaulVacTillDate_Col = obj.NoOfPerviousAnnaulVacTillDate_Col; VacationData.NoOfActuallyVacationDaysTillDate_Col = obj.NoOfActuallyVacationDaysTillDate_Col; VacationData.OfficialVacations = obj.OfficialVacations; VacationData.VactionFromPrmEffect = obj.VactionFromPrmEffect; VacationData.NoOfTransferAnnaulVacTillDate_Col = obj.NoOfTransferAnnaulVacTillDate_Col; VacationData.TotalAvailable = (obj.AllowedVacationBal_Col + obj.NoOfTransferAnnaulVacTillDate_Col); VacationData.RemainBalance = Convert.ToDecimal(balance); VacationData.FromStartPeriod = obj.FromStartPeriod; VacationData.ToEndPeriod = obj.ToEndPeriod; VacationData.Contract_Id = obj.Contract_Id; VacationData.ContractPeriod_Id = obj.ContractPeriod_Id; objectList.Add(VacationData); } return(objectList); } catch (Exception ex) { catchEntityvalidation((System.Data.Entity.Validation.DbEntityValidationException)ex, System.Runtime.InteropServices.Marshal.GetExceptionCode().ToString(), this.UserNameProperty.ToString(), this.GetType().Name.ToString(), methodBase.Name.ToString()); ex.InnerException.Message.ToString(); return(null); } finally { CloseEntityConnection(); } }
public Task <ResponseViewModel <List <VacationDataViewModel> > > UpdateVacationAsync(List <VacationDataViewModel> vacations, LoginViewModel loggedUser) { return(Task.Factory.StartNew(() => { var response = new ResponseViewModel <List <VacationDataViewModel> >(); var vacationToUpdate = new VacationData(); response = _validator.IsValidForUpdate(vacations, loggedUser); if (!response.Success) { return response; } try { foreach (var vacation in vacations) { //Check if data is for insert of update var vacationDB = _context.VacationData .SingleOrDefault(c => c.VacationDate == vacation.CalendarDate && c.UserID == vacation.UserID); if (vacationDB == null && vacation.Id == default(int)) { var dataForInsert = VacationDataMapper(vacation); _context.VacationData.Add(dataForInsert); } else { //Check if vacation record is deleted meanwhile vacationToUpdate = _context.VacationData .SingleOrDefault(c => c.ID == vacation.Id); if (vacationToUpdate == null) { throw new Exception("The vacation was deleted by another user. Click again for insert!"); } // throws concurrency exception on save changes if item is already modified by another request _context.Entry(vacationToUpdate).Property("RowVersion").OriginalValue = vacation.RowVersion; //change values for update vacationToUpdate.VacationTypeID = vacation.VacationTypeID; _context.Update(vacationToUpdate).State = EntityState.Modified; } } _context.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { string errorMessage; var exceptionEntry = ex.Entries.First(); var clientValues = (VacationData)exceptionEntry.Entity; var databaseEntry = exceptionEntry.GetDatabaseValues(); if (databaseEntry == null) { errorMessage = "The vacation was deleted by another user. Click again for insert!"; } else { var databaseValues = (VacationData)databaseEntry.ToObject(); if (databaseValues.VacationTypeID != clientValues.VacationTypeID) { errorMessage = "The Vacation Type is changed by another user! Click again for update!"; } else { errorMessage = "Some data changed meanwhile! Click again for update!"; } } _context.Entry(vacationToUpdate).State = EntityState.Detached; response.Success = false; response.ResponseMessages.Add(ApplicationConstants.UPDATE_ERROR + " - " + errorMessage); response.ReturnedObject = GetVacationForUser(vacations.FirstOrDefault().CalendarDate.Year, vacations.FirstOrDefault().CalendarDate.Month, null, vacations.FirstOrDefault().UserID); } catch (Exception e) { response.Success = false; response.ResponseMessages.Add(ApplicationConstants.UPDATE_ERROR + " - " + e.Message); response.ReturnedObject = GetVacationForUser(vacations.FirstOrDefault().CalendarDate.Year, vacations.FirstOrDefault().CalendarDate.Month, null, vacations.FirstOrDefault().UserID); return response; } response.Success = true; response.ResponseMessages.Add(ApplicationConstants.UPDATE_SUCCESS); response.ReturnedObject = GetVacationForUser(vacations.FirstOrDefault().CalendarDate.Year, vacations.FirstOrDefault().CalendarDate.Month, null, vacations.FirstOrDefault().UserID); return response; })); }