public void UpdateBusinessTripMileageAllowances(BusinessTrip trip, BusinessTripDTO businessTripDto) { if (businessTripDto != null) { foreach (MileageAllowance allowance in trip.MileageAllowances .Where(m => businessTripDto.MileageAllowances .Any(mdto => mdto.id == m.Id))) { //Update mileage allowances that exist both in database and in dto MileageAllowanceDTO mdto = businessTripDto.MileageAllowances.First(m => m.id == allowance.Id); allowance.Type = repo.Dictionaries.GetVehicleType(mdto.VehicleTypeId); allowance.Date = mdto.Date.ParseAppString(); allowance.Amount = mdto.Amount; allowance.Distance = mdto.Distance; allowance.Notes = mdto.Notes; } //Remove those that exist in db but don't exist in dto repo.MileageAllowances.RemoveSet(trip.MileageAllowances .Where(m => !businessTripDto.MileageAllowances .Any(mdto => mdto.id == m.Id))); foreach (MileageAllowanceDTO milDto in businessTripDto.MileageAllowances.Where(mdto => !trip.MileageAllowances.Any(ma => ma.Id == mdto.id))) { //Add those that exist in dto but don't exist in db MileageAllowance allowance = new MileageAllowance(); allowance.Trip = trip; allowance.Date = milDto.Date.ParseAppString(); allowance.Amount = milDto.Amount; allowance.Distance = milDto.Distance; allowance.Type = repo.Dictionaries.GetVehicleType(milDto.VehicleTypeId); allowance.Notes = milDto.Notes; trip.MileageAllowances.Add(allowance); } } }
public static MileageAllowanceDTO MapToDTO(this MileageAllowance allowance) { return(new MileageAllowanceDTO() { id = allowance.Id, VehicleTypeId = allowance.VehicleTypeId, Date = allowance.Date.ToAppString(), Distance = allowance.Distance, Amount = allowance.Amount, Notes = allowance.Notes }); }
static void CreateObjects() { PersistenceManager pm = new PersistenceManager(); pm.BuildDatabase(); Employee e = new Employee(); e.FirstName = "John"; e.LastName = "Becker"; pm.MakePersistent(e); Travel t = e.NewTravel(); t.Purpose = "NDO Workshop"; ExpenseVoucher ev = new ExpenseVoucher(); ev.VoucherText = "Taxi"; ev.Sum = 30; ev.Date = DateTime.Now.Date; t.AddExpense(ev); MileageAllowance ma = new MileageAllowance(); ma.MilesDriven = 200; ma.Date = DateTime.Now.Date; t.AddExpense(ma); PerDiemAllowance pda = new PerDiemAllowance(); pda.Hours = (decimal)12.5; pda.Date = DateTime.Now.Date; t.AddExpense(pda); pm.Save(); }
public int CreateNewBusinessTrip(BusinessTripDTO businessTrip, string userName) { User user = repo.Users.UsersQueryable.FirstOrDefault(u => u.UserName == userName); BusinessTrip trip = repo.BusinessTrips.Create(new BusinessTrip() { Title = businessTrip.Title, Date = businessTrip.Date.ParseAppString(), BusinessReason = businessTrip.BusinessReason, BusinessPurpose = businessTrip.BusinessPurpose, Notes = businessTrip.Notes, User = user }); if (businessTrip.Subsistence != null) { CreateBusinessTripSubsistence(trip, businessTrip); } List <Expense> expenses = new List <Expense>(); if (businessTrip.Expenses != null) { foreach (ExpenseDTO expDto in businessTrip.Expenses) { Expense expense = new Expense(); expense.Trip = trip; expense.Type = repo.Dictionaries.GetExpenseType(expDto.ExpenseTypeId); expense.Date = expDto.Date.ParseAppString(); expense.City = expDto.City; expense.Amount = expDto.Amount; expense.AmountPLN = expDto.AmountPLN; expense.Country = repo.Dictionaries.GetCountry(expDto.CountryId); expense.CurrencyCode = expDto.CurrencyCode; expense.ExchangeRate = expDto.ExchangeRate; CurrencyRate systemRate = currenciesTasks.GetCurrencyRateForDay(expense.CurrencyCode, expense.Date.Date); if (Math.Abs(systemRate.ExchangeRate - expense.ExchangeRate) > 0.0001) { expense.ExchangeRateModifiedByUser = true; } else { expense.ExchangeRateModifiedByUser = false; } expense.VATRate = expDto.VATRate; expense.Notes = expDto.Notes; expense.DoNotReturn = expDto.DoNotReturn; expense.DocumentType = repo.Dictionaries.GetExpenseDocumentType(expDto.ExpenseDocumentTypeId); expenses.Add(expense); } repo.Expenses.CreateSet(expenses); } if (businessTrip.MileageAllowances != null) { List <MileageAllowance> mileageAllowances = new List <MileageAllowance>(); foreach (MileageAllowanceDTO maDto in businessTrip.MileageAllowances) { MileageAllowance ma = new MileageAllowance(); ma.Trip = trip; ma.Date = maDto.Date.ParseAppString(); ma.Distance = maDto.Distance; ma.Amount = maDto.Amount; ma.Notes = maDto.Notes; ma.Type = repo.Dictionaries.GetVehicleType(maDto.VehicleTypeId); mileageAllowances.Add(ma); } repo.MileageAllowances.CreateSet(mileageAllowances); } this.repo.SaveChanges(); return(trip.Id); }