Skip to content

Commit

Permalink
SQL connection issue has been fixed.
Browse files Browse the repository at this point in the history
  • Loading branch information
TanvirArjel committed Jul 17, 2022
1 parent e9f93a4 commit de42a31
Show file tree
Hide file tree
Showing 20 changed files with 542 additions and 547 deletions.
14 changes: 7 additions & 7 deletions demo/AspNetCore5.0/AspNetCore5.0.csproj
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>AspNetCore5._0</RootNamespace>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.6">
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.6">
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.7" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />
<PackageReference Include="Moq" Version="4.16.1" />
<PackageReference Include="TanvirArjel.Extensions.Microsoft.DependencyInjection" Version="1.4.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.7" />
<PackageReference Include="Moq" Version="4.18.1" />
<PackageReference Include="TanvirArjel.Extensions.Microsoft.DependencyInjection" Version="2.0.0" />
</ItemGroup>

<ItemGroup>
Expand Down
284 changes: 141 additions & 143 deletions demo/AspNetCore5.0/Controllers/EmployeeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,183 +8,181 @@
using Microsoft.EntityFrameworkCore;
using TanvirArjel.EFCore.GenericRepository;

namespace AspNetCore5._0.Controllers
namespace AspNetCore5._0.Controllers;

public class EmployeeController : Controller
{
public class EmployeeController : Controller
private readonly IRepository _repository;
private readonly IQueryRepository _queryRepository;
private readonly Demo1DbContext _context;
private readonly IRepository<Demo1DbContext> _demo1Repository;

public EmployeeController(
IRepository repository,
IQueryRepository queryRepository,
Demo1DbContext context,
IRepository<Demo1DbContext> demo1Repository)
{
private readonly IRepository _repository;
private readonly IQueryRepository _queryRepository;
private readonly Demo1DbContext _context;
private readonly IRepository<Demo1DbContext> _demo1Repository;

public EmployeeController(
IRepository repository,
IQueryRepository queryRepository,
Demo1DbContext context,
IRepository<Demo1DbContext> demo1Repository)
{
_repository = repository;
_context = context;
_queryRepository = queryRepository;
_demo1Repository = demo1Repository;
}
_repository = repository;
_context = context;
_queryRepository = queryRepository;
_demo1Repository = demo1Repository;
}

// GET: Employee
public async Task<IActionResult> Index()
{
//var list = _context.SqlQuery(
// () => new { EmployeeName = "", DepartmentName = "" },
// "Select EmployeeName,DepartmentName from Employee Where EmployeeId = @p0", 1);
List<string> search = new List<string>() { "Tanvir", "Software" };
string sqlQuery = "Select EmployeeName, DepartmentName from Employee Where EmployeeName LIKE @p0 + '%' and DepartmentName LIKE @p1 + '%'";
List<EmployeeDto> items = await _repository
.GetFromRawSqlAsync<EmployeeDto>(sqlQuery, search);

//List<string> list1 = _context.ExecSQL<string>("Select EmployeeName from Employee");
List<Employee> lists = await _queryRepository.GetQueryable<Employee>().ToListAsync();
return View(lists);
}
// GET: Employee
public async Task<IActionResult> Index()
{
//var list = _context.SqlQuery(
// () => new { EmployeeName = "", DepartmentName = "" },
// "Select EmployeeName,DepartmentName from Employee Where EmployeeId = @p0", 1);
List<string> search = new List<string>() { "Tanvir", "Software" };
string sqlQuery = "Select EmployeeName, DepartmentName from Employee Where EmployeeName LIKE @p0 + '%' and DepartmentName LIKE @p1 + '%'";
List<EmployeeDto> items = await _repository.GetFromRawSqlAsync<EmployeeDto>(sqlQuery, search);

//List<string> list1 = _context.ExecSQL<string>("Select EmployeeName from Employee");
List<Employee> lists = await _queryRepository.GetQueryable<Employee>().ToListAsync();
return View(lists);
}

// GET: Employee/Details/5
public async Task<IActionResult> Details(long? id)
// GET: Employee/Details/5
public async Task<IActionResult> Details(long? id)
{
if (id == null)
{
if (id == null)
{
return NotFound();
}
Employee employee = await _repository.GetByIdAsync<Employee>(id);
bool isExistent = await _repository.ExistsByIdAsync<Employee>(id);
if (employee == null)
{
return NotFound();
}

return View(employee);
return NotFound();
}

// GET: Employee/Create
public IActionResult Create()
Employee employee = await _repository.GetByIdAsync<Employee>(id);
bool isExistent = await _repository.ExistsByIdAsync<Employee>(id);
if (employee == null)
{
return View();
return NotFound();
}

// POST: Employee/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(Employee employee)
return View(employee);
}

// GET: Employee/Create
public IActionResult Create()
{
return View();
}

// POST: Employee/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(Employee employee)
{
if (ModelState.IsValid)
{
if (ModelState.IsValid)
{
// Insert to database 1
employee.DepartmentId = 1;
// Insert to database 1
employee.DepartmentId = 1;

_repository.Add(employee);
_repository.Add(employee);

EmployeeHistory employeeHistory1 = new EmployeeHistory()
{
EmployeeId = employee.EmployeeId,
DepartmentId = employee.DepartmentId,
EmployeeName = employee.EmployeeName
};
EmployeeHistory employeeHistory1 = new EmployeeHistory()
{
EmployeeId = employee.EmployeeId,
DepartmentId = employee.DepartmentId,
EmployeeName = employee.EmployeeName
};

_repository.Add(employeeHistory1);
await _repository.SaveChangesAsync();
_repository.Add(employeeHistory1);
await _repository.SaveChangesAsync();

// Insert to database 2
employee.EmployeeId = 0;
employee.DepartmentId = 1;
// Insert to database 2
employee.EmployeeId = 0;
employee.DepartmentId = 1;

EmployeeHistory employeeHistory2 = new EmployeeHistory()
{
EmployeeId = employee.EmployeeId,
DepartmentId = employee.DepartmentId,
EmployeeName = employee.EmployeeName
};
EmployeeHistory employeeHistory2 = new EmployeeHistory()
{
EmployeeId = employee.EmployeeId,
DepartmentId = employee.DepartmentId,
EmployeeName = employee.EmployeeName
};

_demo1Repository.Add(employee);
_demo1Repository.Add(employeeHistory2);
_demo1Repository.Remove(employee);
await _demo1Repository.SaveChangesAsync();
_demo1Repository.Add(employee);
_demo1Repository.Add(employeeHistory2);
_demo1Repository.Remove(employee);
await _demo1Repository.SaveChangesAsync();

return RedirectToAction(nameof(Index));
return RedirectToAction(nameof(Index));

}
return View(employee);
}
return View(employee);
}

// GET: Employee/Edit/5
public async Task<IActionResult> Edit(long? id)
// GET: Employee/Edit/5
public async Task<IActionResult> Edit(long? id)
{
if (id == null)
{
if (id == null)
{
return NotFound();
}

Employee employee = await _repository.GetByIdAsync<Employee>(id);
if (employee == null)
{
return NotFound();
}
return View(employee);
return NotFound();
}

// POST: Employee/Edit/5
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(long id, Employee employee)
Employee employee = await _repository.GetByIdAsync<Employee>(id);
if (employee == null)
{
if (employee == null)
{
throw new ArgumentNullException(nameof(employee));
}

if (id != employee.EmployeeId)
{
return NotFound();
}
return NotFound();
}
return View(employee);
}

if (ModelState.IsValid)
{
Employee employeeToBeUpdated = await _repository.GetByIdAsync<Employee>(employee.EmployeeId);
employeeToBeUpdated.EmployeeName = employee.EmployeeName;
employeeToBeUpdated.DepartmentName = employee.DepartmentName;
await _repository.UpdateAsync(employeeToBeUpdated);
return RedirectToAction(nameof(Index));
}
return View(employee);
// POST: Employee/Edit/5
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(long id, Employee employee)
{
if (employee == null)
{
throw new ArgumentNullException(nameof(employee));
}

// GET: Employee/Delete/5
public async Task<IActionResult> Delete(long? id)
if (id != employee.EmployeeId)
{
if (id == null)
{
return NotFound();
}
return NotFound();
}

Employee employee = await _repository.GetByIdAsync<Employee>(id);
if (employee == null)
{
return NotFound();
}
if (ModelState.IsValid)
{
Employee employeeToBeUpdated = await _repository.GetByIdAsync<Employee>(employee.EmployeeId);
employeeToBeUpdated.EmployeeName = employee.EmployeeName;
employeeToBeUpdated.DepartmentName = employee.DepartmentName;
await _repository.UpdateAsync(employeeToBeUpdated);
return RedirectToAction(nameof(Index));
}
return View(employee);
}

return View(employee);
// GET: Employee/Delete/5
public async Task<IActionResult> Delete(long? id)
{
if (id == null)
{
return NotFound();
}

// POST: Employee/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(long id)
Employee employee = await _repository.GetByIdAsync<Employee>(id);
if (employee == null)
{
Employee employee = await _queryRepository.GetByIdAsync<Employee>(id);
_repository.Remove(employee);
await _repository.SaveChangesAsync();
return RedirectToAction(nameof(Index));
return NotFound();
}

return View(employee);
}

// POST: Employee/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(long id)
{
Employee employee = await _queryRepository.GetByIdAsync<Employee>(id);
_repository.Remove(employee);
await _repository.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}

}
Loading

0 comments on commit de42a31

Please sign in to comment.