Advertisement
Iv_Dim

BeerService CRUD

Apr 10th, 2020
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.24 KB | None | 0 0
  1. using BeerOverflow.Data;
  2. using BeerOverflow.Models;
  3. using BeerOverflow.Services.DTO;
  4. using BeerOverflow.Services.Provider.Contracts;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8.  
  9. namespace BeerOverflow.Services
  10. {
  11.     public class BeerService
  12.     {
  13.         private readonly IDateTimeProvider dateTimeProvider;
  14.  
  15.         public BeerService(IDateTimeProvider dateTimeProvider)
  16.         {
  17.             this.dateTimeProvider = dateTimeProvider ?? throw new ArgumentNullException(nameof(dateTimeProvider));
  18.         }
  19.         public BeerDTO GetBeer(int id)
  20.         {
  21.             var beer = Database.Beers
  22.                 .Where(beer => beer.IsDeleted == false)
  23.                 .FirstOrDefault(beer => beer.BeerID == id);
  24.  
  25.             if (beer == null)
  26.             {
  27.                 throw new ArgumentNullException();
  28.             }
  29.  
  30.             var beerDTO = new BeerDTO
  31.             {
  32.                 BeerID = beer.BeerID,
  33.                 Name = beer.Name,
  34.                 Type = beer.Type,
  35.                 Brewery = beer.Brewery,
  36.                 Country = beer.Country,
  37.                 AlcoholPerecentage = beer.AlcoholPerecentage,
  38.              
  39.             };
  40.  
  41.             return beerDTO;
  42.         }
  43.  
  44.  
  45.         public BeerDTO CreateBeer(BeerDTO beerDTO)
  46.         {
  47.             var beer = new Beer
  48.             {
  49.                 BeerID = beerDTO.BeerID,
  50.                 Name = beerDTO.Name,
  51.                 Type = beerDTO.Type,
  52.                 Brewery = beerDTO.Brewery,
  53.                 Country = beerDTO.Country,
  54.                 AlcoholPerecentage = beerDTO.AlcoholPerecentage,
  55.                // CreatedOn = this.dateTimeProvider.GetDateTime(),
  56.             };
  57.  
  58.             Database.Beers.Add(beer);
  59.  
  60.             return beerDTO;
  61.         }
  62.  
  63.         public BeerDTO UpdateBeer(int id, string newName, string newType,
  64.             Brewery newBrewery, Country newCountry, double newAlcoholPerecentage)
  65.         {
  66.             var beer = Database.Beers
  67.                 .Where(beer => beer.IsDeleted == false)
  68.                 .FirstOrDefault(beer => beer.BeerID == id);
  69.  
  70.  
  71.             beer.Name = newName;
  72.             beer.Type = newType;
  73.             beer.Brewery = newBrewery;
  74.             beer.Country = newCountry;
  75.             beer.AlcoholPerecentage = newAlcoholPerecentage;
  76.             //beer.ModifiedOn = this.dateTimeProvider.GetDateTime();
  77.  
  78.             var beerDTO = new BeerDTO
  79.             {
  80.                 BeerID = beer.BeerID,
  81.                 Name = beer.Name,
  82.                 Type = beer.Type,
  83.                 Brewery = beer.Brewery,
  84.                 Country = beer.Country,
  85.                 AlcoholPerecentage = beer.AlcoholPerecentage,
  86.             };
  87.  
  88.             return beerDTO;
  89.         }
  90.  
  91.         public bool DeleteBeer(int id)
  92.         {
  93.             try
  94.             {
  95.                 var beer = Database.Beers
  96.                     .Where(beer => beer.IsDeleted == false)
  97.                     .FirstOrDefault(beer => beer.BeerID == id);
  98.  
  99.                 beer.IsDeleted = true;
  100.                // beer.DeletedOn = this.dateTimeProvider.GetDateTime();
  101.  
  102.                 return true;
  103.             }
  104.             catch (Exception)
  105.             {
  106.                 return false;
  107.             }
  108.         }
  109.     }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement