Skip to content

Commit

Permalink
Add Credit Card
Browse files Browse the repository at this point in the history
- Add Credit Card
- Add Credit Card Manager
- Fix Sql table prop types
  • Loading branch information
Ahmet Çetinkaya committed Apr 1, 2021
1 parent 21138df commit 6f2a7dc
Show file tree
Hide file tree
Showing 11 changed files with 171 additions and 12 deletions.
17 changes: 17 additions & 0 deletions Business/Abstract/ICreditCardService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System.Collections.Generic;
using Core.Utilities.Results;
using Entities.Concrete;

namespace Business.Abstract
{
public interface ICreditCardService
{
IDataResult<CreditCard> GetById(int id);

IDataResult<List<CreditCard>> GetAllByCustomerId(int customerId);

IResult Add(CreditCard creditCard);

IResult Delete(CreditCard creditCard);
}
}
46 changes: 46 additions & 0 deletions Business/Concrete/CreditCardManager.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using System.Collections.Generic;
using Business.Abstract;
using Business.BusinessAspects.Autofac;
using Business.Constants;
using Core.Utilities.Results;
using DataAccess.Abstract;
using Entities.Concrete;

namespace Business.Concrete
{
public class CreditCardManager : ICreditCardService
{
private readonly ICreditCardDal _creditCardDal;

public CreditCardManager(ICreditCardDal creditCardDal)
{
_creditCardDal = creditCardDal;
}

[SecuredOperation("user")]
public IDataResult<CreditCard> GetById(int id)
{
return new SuccessDataResult<CreditCard>(_creditCardDal.Get(c => c.Id == id));
}

[SecuredOperation("user")]
public IDataResult<List<CreditCard>> GetAllByCustomerId(int customerId)
{
return new SuccessDataResult<List<CreditCard>>(_creditCardDal.GetAll(c => c.CustomerId == customerId));
}

[SecuredOperation("user")]
public IResult Add(CreditCard creditCard)
{
_creditCardDal.Add(creditCard);
return new SuccessResult(Messages.creditCardAdded);
}

[SecuredOperation("user")]
public IResult Delete(CreditCard creditCard)
{
_creditCardDal.Delete(creditCard);
return new SuccessResult(Messages.creditCardDeleted);
}
}
}
7 changes: 5 additions & 2 deletions Business/Constants/Messages.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,12 @@ public static class Messages
public static string OperationClaimUpdated = "Operation claim has added.";
public static string OperationClaimDeleted = "Operation claim has added.";

internal static string FindeksNotEnoughForCar = "Findeks point is not enough for the car.";
internal static string FindeksNotFound = "You have to add your findeks score.";
public static string FindeksNotEnoughForCar = "Findeks point is not enough for the car.";
public static string FindeksNotFound = "You have to add your findeks score.";

public static string UserDetailsUpdated = "User details have been updated.";

public static readonly string creditCardAdded = "Credit card has added.";
public static readonly string creditCardDeleted = "Credit card has deleted.";
}
}
3 changes: 3 additions & 0 deletions Business/DependencyResolvers/Autofac/AutofacBusinessModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ protected override void Load(ContainerBuilder builder)
builder.RegisterType<FakeFindeksManager>().As<IFindeksService>();
builder.RegisterType<EfFindeksDal>().As<IFindeksDal>();

builder.RegisterType<CreditCardManager>().As<ICreditCardService>();
builder.RegisterType<EfCreditCardDal>().As<ICreditCardDal>();


var assembly = Assembly.GetExecutingAssembly();
builder.RegisterAssemblyTypes(assembly)
Expand Down
9 changes: 9 additions & 0 deletions DataAccess/Abstract/ICreditCardDal.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using Core.DataAccess;
using Entities.Concrete;

namespace DataAccess.Abstract
{
public interface ICreditCardDal : IEntityRepository<CreditCard>
{
}
}
10 changes: 10 additions & 0 deletions DataAccess/Concrete/EntityFramework/EfCreditCardDal.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using Core.DataAccess.EntityFramework;
using DataAccess.Abstract;
using Entities.Concrete;

namespace DataAccess.Concrete.EntityFramework
{
public class EfCreditCardDal : EfEntityRepositoryBase<CreditCard, ReCapProjectContext>, ICreditCardDal
{
}
}
1 change: 1 addition & 0 deletions DataAccess/Concrete/EntityFramework/ReCapProjectContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public class ReCapProjectContext : DbContext
public DbSet<OperationClaim> OperationClaims { get; set; }
public DbSet<UserOperationClaim> UserOperationClaims { get; set; }
public DbSet<Findeks> Findeks { get; set; }
public DbSet<CreditCard> CreditCards { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
Expand Down
16 changes: 16 additions & 0 deletions Entities/Concrete/CreditCard.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using Core.Entities;

namespace Entities.Concrete
{
public class CreditCard : IEntity
{
public int Id { get; set; }
public int CustomerId { get; set; }
public string NameSurname { get; set; }
public string CardNumber { get; set; }
public byte ExpMonth { get; set; }
public byte ExpYear { get; set; }
public string Cvc { get; set; }
public string CardType { get; set; }
}
}
8 changes: 1 addition & 7 deletions ReCapProject.sln
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DataAccess", "DataAccess\Da
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Business", "Business\Business.csproj", "{C1321EA3-0919-4D3D-B80B-C943F791FEBB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleUI", "ConsoleUI\ConsoleUI.csproj", "{89FC3102-DE3F-4A9C-8804-6926A4D44C47}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F816BBB8-20B9-4149-92CB-7D361C00A030}"
ProjectSection(SolutionItems) = preProject
ReCapProjectDB.sql = ReCapProjectDB.sql
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "Core\Core.csproj", "{8B63725F-FCAE-4A09-9045-E9F90CF76BDA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebAPI", "WebAPI\WebAPI.csproj", "{99DCEA50-03E4-4D32-8612-443FA9AE758A}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebAPI", "WebAPI\WebAPI.csproj", "{99DCEA50-03E4-4D32-8612-443FA9AE758A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand All @@ -38,10 +36,6 @@ Global
{C1321EA3-0919-4D3D-B80B-C943F791FEBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C1321EA3-0919-4D3D-B80B-C943F791FEBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C1321EA3-0919-4D3D-B80B-C943F791FEBB}.Release|Any CPU.Build.0 = Release|Any CPU
{89FC3102-DE3F-4A9C-8804-6926A4D44C47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{89FC3102-DE3F-4A9C-8804-6926A4D44C47}.Debug|Any CPU.Build.0 = Debug|Any CPU
{89FC3102-DE3F-4A9C-8804-6926A4D44C47}.Release|Any CPU.ActiveCfg = Release|Any CPU
{89FC3102-DE3F-4A9C-8804-6926A4D44C47}.Release|Any CPU.Build.0 = Release|Any CPU
{8B63725F-FCAE-4A09-9045-E9F90CF76BDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8B63725F-FCAE-4A09-9045-E9F90CF76BDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8B63725F-FCAE-4A09-9045-E9F90CF76BDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down
20 changes: 17 additions & 3 deletions ReCapProjectDB.sql
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ CREATE TABLE [dbo].[Colors] (
CREATE TABLE [dbo].[Customers] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[UserId] INT NOT NULL,
[CompanyName] NCHAR (50) NULL,
[CompanyName] NVARCHAR(50) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_Customers_Users] FOREIGN KEY ([UserId]) REFERENCES [dbo].[Users] ([Id])
);
Expand Down Expand Up @@ -82,8 +82,22 @@ CREATE TABLE [dbo].[UserOperationClaims] (
CREATE TABLE [dbo].[Findeks] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[CustomerId] INT NOT NULL,
[NationalIdentity] NCHAR (50) NOT NULL,
[NationalIdentity] NVARCHAR(50) NOT NULL,
[Score] SMALLINT DEFAULT ((0)) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_Findeks_Customers] FOREIGN KEY ([CustomerId]) REFERENCES [dbo].[Customers] ([Id])
);
);

CREATE TABLE [dbo].[CreditCards] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[CustomerId] INT NOT NULL,
[NameSurname] NVARCHAR (100) NOT NULL,
[CardNumber] NVARCHAR (25) NOT NULL,
[ExpMonth] TINYINT NOT NULL,
[ExpYear] TINYINT NOT NULL,
[Cvc] NVARCHAR (3) NOT NULL,
[CardType] NVARCHAR(20) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_CreditCards_Customers] FOREIGN KEY ([CustomerId]) REFERENCES [dbo].[Customers] ([Id])
);

46 changes: 46 additions & 0 deletions WebAPI/Controllers/CreditCardsController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using Business.Abstract;
using Entities.Concrete;
using Microsoft.AspNetCore.Mvc;

namespace WebAPI.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class CreditCardsController : Controller
{
private readonly ICreditCardService _creditCardService;

public CreditCardsController(ICreditCardService creditCardService)
{
_creditCardService = creditCardService;
}


[HttpGet("getallbycustomerid")]
public IActionResult GetAllByCustomerId(int customerId)
{
var result = _creditCardService.GetAllByCustomerId(customerId);
if (result.Success) return Ok(result);

return BadRequest(result);
}

[HttpPost("add")]
public IActionResult Add(CreditCard creditCard)
{
var result = _creditCardService.Add(creditCard);
if (result.Success) return Ok(result);

return BadRequest(result);
}

[HttpPost("delete")]
public IActionResult Delete(CreditCard creditCard)
{
var result = _creditCardService.Delete(creditCard);
if (result.Success) return Ok(result);

return BadRequest(result);
}
}
}

0 comments on commit 6f2a7dc

Please sign in to comment.