Sunteți pe pagina 1din 7

Ministerul Educației al Republicii Moldova

Universitatea Tehnică a Moldovei

Facultatea Calculatoare, Informatică şi Microelectronică

Departamentul Ingineria Software şi Automatică

Raport
Lucrarea de laborator nr.3
Disciplina: Tehnologii WEB

A efectuat: st. gr. Ploaia Dan TI-181

A verificat: conf.univ. Cristian Rusu

Chișinău – 2020
Tema: ” Modele de proiectare. Pattern BusinessLogic”

Scopul lucrării: Familiarizarea cu structura modelului de proiectarii


BusinessLogic.
Sarcina lucrarii: De elaborat un proiect ASP.NET in baza lucrarii de laborator nr.2,
utilizand modelul BusinessLogic.

Elaborarea lucrarii:
Adaugarea bibliotecii claselor BusinessLogic, Domain, Helpers.

Crearea interfetei ISession in BusinessLogic

Crearea clasei SessionBL in BusinessLogic


namespace Market.BusinessLogic
{
public class SessionBL : UserApi, ISession
{
public ULoginResp UserLogin(ULoginData data)
{
throw new System.NotImplementedException();
}
}
}
Aaugarea clasei BusinessLogic. Aceasta clasa contine metoda care returneaza un
obiect care incapsuleaza interfata Isession.

namespace Market.BusinessLogic
{
public class BussinesLogic
{
public ISession GetSessionBL()
{
return new SessionBL();
}
}
}

Structura bibliotecii BusinessLogic

In proiectul Domain se creaza dosarele Entities si Enums. Entities contine entitati care
vor fi utilizate mai tarziu in lucrul cu baza de date. In dosarul Entities se creeaza un
subfolder User cu doua clase in interior: UloginData si UloginResp.
Clasa UloginData contine campurile necesare pentru preluarea informatiilor
utilizatorului si anume numele , parola , adresa IP si ora de conectare.
namespace Market.Domain.Entities.User
{
public class ULoginData
{
public string Credential { get; set; }
public string Password { get; set; }
public string LoginIp { get; set; }
public DateTime LoginDateTime { get; set; }

}
}

La randul ei clasa UloginResp contine campuri care descriu raspunsul primit dupa ce
utilizatorul se conecteaza.
namespace Market.Domain.Entities.User
{
public class ULoginResp
{
public bool Status { get; set; }
public string StatusMsg { get; set; }
}
}

Structura bibliotecii Domain

Unul dintre pasii principali in dezvoltarea unui serviciu de conectare este de a finaliza
elementele necesare unui proiect web. Unul dintre aceste elemente este controlerul cu
numele LoginController care este creat in folderul Controllers.
namespace Market.Web.Controllers
{
public class LoginController : Controller
{
private readonly ISession _session;

public LoginController()
{
var bl = new BussinesLogic();
_session = bl.GetSessionBL();
}

// GET: Login
public ActionResult Index()
{
return View();
}

[HttpPost]
[ValidateAntiForgeryToken]

public ActionResult Index(UserLogin login)


{
if (ModelState.IsValid)
{
ULoginData data = new ULoginData
{
Credential = login.Credential,
Password = login.Password,
LoginIp = Request.UserHostAddress,
LoginDateTime = DateTime.Now
};
var userLogin = _session.UserLogin(data);
if (userLogin.Status)
{
//ADD COOKIE

return RedirectToAction("Index", "Home");


}
else
{
ModelState.AddModelError("", userLogin.StatusMsg);
return View();
}
}
return View();
}

Clasa UserLogin, obiectul căreia primește controlerul creat anterior, conține


informații din pagina HTML. Această clasă este creată în dosarul Models al
proiectului Web.
Clasa UserLogin conține două câmpuri care stochează numele de utilizator și parola,
cu prin intermediul căruia sa făcut logarea.
namespace Market.Web.Models
{
public class UserLogin
{
public string Credential { get; set; }
public string Password { get; set; }
}
}
Pentru a afișa această implementare pe ecranul utilizatorului creați o vizualizare nouă
în directorul View -> Login cu numele Index.cshtml. În astavizualizarea este codul
paginii de autentificare.
@{
Layout = "~/Views/Shared/_Layout_Blank.cshtml";
ViewBag.Title = "Login";
}

@using System.Web.Optimization
@model Market.Web.Models.UserLogin

<h2 class="d-flex justify-content-center">Sign In:</h2>


<div class="row">
<div class="col-md-12 d-flex justify-content-center">
<br>
<br>
<form>
<div class="form-group">
<input type="email" class="form-control" id="email" placeholder="Enter
email">

</div>
<div class="form-group">
<input type="password" class="form-control" id="pass"
placeholder="Password">
</div>

<button type="submit" class="btn btn-outline-dark ">Login</button>


<button type="submit" class="btn btn-outline-dark ">Register</button>
</form>
</div>
</div>

Machetul paginii de logare obtinute:


Concluzii

La elaborarea lucrarii de laborator nr. 3 a fost studiata structura proiectului ASP.NET


din punct de vedere al modelului BusinessLogic. Cu ajutorul cunostintelor obtinute a
fost completat laboratorul nr.2 iar in rezultat am adaugat in proiect o noua pagina si
anume pagina de logare a utilizatorului.

S-ar putea să vă placă și