/// <summary> /// Dodaje/aktualizuje przesłany obiekt w bazie danych /// </summary> /// <param name="deliveryItemType">Obiekt do dodania/aktualizacji</param> /// <returns>Zaktualizowany obiekt typu DeliveryItemType</returns> public async Task <DeliveryItemType> AddDeliveryItemType(DeliveryItemType deliveryItemType) { bool bExists = await _context .DeliveryItemTypes .AnyAsync(dit => dit.Id == deliveryItemType.Id); if (bExists) { _context .DeliveryItemTypes .Update(deliveryItemType); await _context .SaveChangesAsync(); return(deliveryItemType); } else { _context .DeliveryItemTypes .Add(deliveryItemType); await _context .SaveChangesAsync(); return(deliveryItemType); } }
/// <summary> /// Metoda aktualizująca /// </summary> /// <param name="company"></param> /// <returns></returns> public async Task <Company> AddCompany(Company company) { bool bExists = await _context .Companies .AnyAsync(c => c.Id == company.Id); switch (bExists) { case true: _context .Companies .Update(company); await _context.SaveChangesAsync(); break; case false: await _context.Companies.AddAsync(company); await _context.SaveChangesAsync(); break; } return(company); }
/// <summary> /// Aktualizuje/dodaje otrzymany obiekt typu Delivery w bazie danych /// </summary> /// <param name="delivery">Obiekt do dodania/aktualizacji</param> /// <returns>Zaktualizowany/dodany obiekt</returns> public async Task <Delivery> SetDelivery(Delivery delivery) { var companyId = _httpContextAccessor .HttpContext .User .Claims .Where(c => c.Type == MyClaims.CompanyId) .Select(c => int.Parse(c.Value)) .FirstOrDefault(); bool bExists = await _context .Deliveries .AnyAsync(d => d.Id == delivery.Id); switch (bExists) { case true: //Jesli delivery istnieje, ale nie należy do firmy użytkownika, zwróć null if (delivery.CompanyId != companyId) { return(null); } //Aktualizuj delivery, zapisz zmiany i zwróć _context .Deliveries .Update(delivery); await _context.SaveChangesAsync(); return(delivery); case false: delivery.CompanyId = companyId; _context.Deliveries.Add(delivery); await _context.SaveChangesAsync(); return(delivery); } return(null); }
/// <summary> /// Metoda dodająca/aktualizująca otrzymany obiekt Car do bazy danych /// </summary> /// <param name="car">obiekt do dodania/aktualizacji</param> /// <returns>Zaktualizowany/dodany obiekt</returns> public async Task <Car> AddCar(Car car) { var bExists = _context .Cars .Where(c => c.Id == car.Id) .Any(); var companyId = _httpContextAccessor .HttpContext .User .Claims .Where(c => c.Type == MyClaims.CompanyId) .Select(c => int.Parse(c.Value)) .FirstOrDefault(); if (bExists) { //Jeśli car istnieje, ale nie należy do firma użytkownika, zwróc null //W przeciwnym wypadku zezwól na modyfikację if (companyId != car.companyId) { return(null); } _context.Cars.Update(car); await _context.SaveChangesAsync(); return(car); } else { //Jeśli car nie istnieje, dodaj go do bazy danych, //Ustawiając companyId na companyId użytkownika z kontekstu car.companyId = companyId; await _context.Cars.AddAsync(car); await _context.SaveChangesAsync(); return(car); } }