public void CreateBusinessTripSubsistence(BusinessTrip trip, BusinessTripDTO businessTrip) { Subsistence sub = repo.Subsistences.Create(new Subsistence() { StartDate = DateExtensions.ParseAppString(businessTrip.Subsistence.StartDate), EndDate = DateExtensions.ParseAppString(businessTrip.Subsistence.EndDate), City = businessTrip.Subsistence.City, Country = repo.Dictionaries.GetCountry(businessTrip.Subsistence.CountryId) }); List<SubsistenceDay> days = new List<SubsistenceDay>(); foreach (SubsistenceDayDTO dayDto in businessTrip.Subsistence.Days) { days.Add(new SubsistenceDay() { Amount = dayDto.Amount, AmountPLN = dayDto.AmountPLN, ExchangeRate = dayDto.ExchangeRate, Breakfast = dayDto.Breakfast, Date = DateExtensions.ParseAppString(dayDto.Date), Dinner = dayDto.Dinner, Supper = dayDto.Supper, Night = dayDto.Night, Subsistence = sub, Diet = dayDto.Diet, IsForeign = dayDto.IsForeign }); } repo.SubsistenceDays.CreateSet(days); trip.Subsistence = sub; }
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 void CreateUpdateBusinessTripSubsistences(BusinessTrip trip, BusinessTripDTO businessTripDto) { Subsistence sub = null; //remove existing days, if they exist if (businessTripDto.Subsistence != null && businessTripDto.Subsistence.Id != null) { sub = repo.Subsistences.GetById(businessTripDto.Subsistence.Id.Value); var currentDays = repo.SubsistenceDays.GetForsubsistence(businessTripDto.Subsistence.Id.Value); repo.SubsistenceDays.Remove(currentDays); List<SubsistenceDay> newDays = new List<SubsistenceDay>(); foreach (SubsistenceDayDTO dayDto in businessTripDto.Subsistence.Days) { newDays.Add(new SubsistenceDay() { Amount = dayDto.Amount, AmountPLN = dayDto.AmountPLN, ExchangeRate = dayDto.ExchangeRate, Breakfast = dayDto.Breakfast, Date = DateExtensions.ParseAppString(dayDto.Date), Dinner = dayDto.Dinner, Supper = dayDto.Supper, Night = dayDto.Night, Subsistence = sub }); } repo.SubsistenceDays.CreateSet(newDays); } else if (businessTripDto.Subsistence != null) { CreateBusinessTripSubsistence(trip, businessTripDto); } }
public void UpdateBusinessTripExpenses(BusinessTrip trip, BusinessTripDTO businessTripDto) { if (businessTripDto.Expenses != null) { foreach (Expense expense in trip.Expenses .Where(e => businessTripDto.Expenses .Any(edto => edto.ExpenseId == e.Id))) {//Update expenses that exist both in database and in dto ExpenseDTO edto = businessTripDto.Expenses.First(expenseDto => expenseDto.ExpenseId == expense.Id); expense.Type = repo.Dictionaries.GetExpenseType(edto.ExpenseTypeId); expense.Date = edto.Date.ParseAppString(); expense.City = edto.City; expense.Amount = edto.Amount; expense.AmountPLN = edto.AmountPLN; //expense.CountryId = expDto.CountryId; expense.Country = repo.Dictionaries.GetCountry(edto.CountryId); expense.CurrencyCode = edto.CurrencyCode; expense.ExchangeRate = edto.ExchangeRate; expense.ExchangeRateModifiedByUser = edto.ExchangeRateModifiedByUser; expense.VATRate = edto.VATRate; expense.Notes = edto.Notes; expense.DocumentType = repo.Dictionaries.GetExpenseDocumentType(edto.ExpenseDocumentTypeId); } //Remove those that exist in db but don't exist in dto repo.Expenses.RemoveSet(trip.Expenses .Where(e => !businessTripDto.Expenses .Any(edto => edto.ExpenseId == e.Id))); foreach (ExpenseDTO expDto in businessTripDto.Expenses.Where(edto => !trip.Expenses.Any(exp => exp.Id == edto.ExpenseId))) {//Add those that exist in dto but don't exist in db 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.CountryId = expDto.CountryId; expense.Country = repo.Dictionaries.GetCountry(expDto.CountryId); expense.CurrencyCode = expDto.CurrencyCode; expense.ExchangeRate = expDto.ExchangeRate; expense.ExchangeRateModifiedByUser = expDto.ExchangeRateModifiedByUser; expense.VATRate = expDto.VATRate; expense.Notes = expDto.Notes; expense.DoNotReturn = expDto.DoNotReturn; expense.DocumentType = repo.Dictionaries.GetExpenseDocumentType(expDto.ExpenseDocumentTypeId); trip.Expenses.Add(expense); } } }
public BusinessTrip Create(BusinessTrip businessTrip) { return this.context.BusinessTrips.Add(businessTrip); }