
public class SpencesController : ApiController
{
private SpencesEntities db = new SpencesEntities();
public IQueryable<Spences> Get()
{
return db.Spences.Where(x => x.CreatedInApp == true & x.SpenceId > 1);
}
}
public IQueryable<Spences> Get(int year)
{
return db.Spences.Where(x => x.Spence > 0 & x.SpenceId > 1 & x.YSpences == year);
}
---------------------------------------------------------------------
public HttpResponseMessage GetSpenceSum(int yearT)
{
try
{
using (Models.SpencesEntities db = new Models.SpencesEntities())
{
var spenceSum = db.Spences
.Where(x => x.YSpences == yearT & x.SpenceId > 1)
.Sum(x => x.Spence);
// Create an anonymous object with the sum value
var responseObject = new { Spence = spenceSum };
// Serialize the object to JSON format
var json = JsonConvert.SerializeObject(responseObject);
// Create a response message with the JSON content
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StringContent(json, Encoding.UTF8, "application/json");
return response;
}
}
catch (Exception ex)
{
// Handle exceptions and return an error response
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message);
}
}
-------------------------------------------------------------------------
public HttpResponseMessage Get(Byte spenceId, Int16 year, Byte monthNumber)
{
using (Models.SpencesEntities db = new Models.SpencesEntities())
{
{
//return Request.CreateResponse(HttpStatusCode.OK, db.BuySell.Where(x => x.Nivel == level).Select(y => new BuySell.Models.BuySell
return Request.CreateResponse(HttpStatusCode.OK, db.Spences.Where(x => x.SpenceId == spenceId & x.YSpences == year & x.MonthNumber == monthNumber).GroupBy(x => x.MonthNumber & x.YSpences).Select(y => new SpencesViewModel
{
id = db.Spences.Where(x => x.SpenceId == spenceId & x.YSpences == year & x.MonthNumber == monthNumber).Count(),
SpenceId = spenceId,
DSpences = db.Spences.Where(x => x.SpenceId == spenceId & x.YSpences >= year & x.MonthNumber == monthNumber).Min(x => x.DSpences),
dia = db.Spences.Where(x => x.SpenceId == spenceId & x.YSpences >= year & x.MonthNumber == monthNumber).Min(x => x.dia),
DiaNumber = db.Spences.Where(x => x.SpenceId == spenceId & x.YSpences >= year & x.MonthNumber == monthNumber).Min(x => x.DiaNumber),
DiaSpences = db.Spences.Where(x => x.SpenceId == spenceId & x.YSpences >= year & x.MonthNumber == monthNumber).Min(x => x.DiaSpences),
MSpences = db.Spences.Where(x => x.SpenceId == spenceId & x.YSpences >= year & x.MonthNumber == monthNumber).Max(x => x.MSpences),
MonthNumber = monthNumber,
YSpences = year,
Spence = db.Spences.Where(x => x.SpenceId == spenceId & x.YSpences == year & x.MonthNumber == monthNumber).Sum(x => x.Spence),
CreatedInApp = false
}).ToList());
}
}
}
[System.Web.Http.HttpPost]
public IHttpActionResult Add(Models.ViewModels.SpencesViewModel modelSpences)
{
using (SpencesEntities db = new SpencesEntities())
{
var oSpences = new Models.Spences();
//oSpences.id = modelSpences.id;
oSpences.SpenceId = modelSpences.SpenceId;
oSpences.Spence = modelSpences.Spence;
oSpences.DSpences = modelSpences.DSpences;
oSpences.dia = modelSpences.dia;
oSpences.DiaNumber = modelSpences.DiaNumber;
oSpences.DiaSpences = modelSpences.DiaSpences;
oSpences.MSpences = modelSpences.MSpences;
oSpences.MonthNumber = modelSpences.MonthNumber;
oSpences.YSpences = modelSpences.YSpences;
oSpences.CreatedInApp = modelSpences.CreatedInApp;
oSpences.SelfLoans_AfterSync = modelSpences.SelfLoans_AfterSync;
oSpences.FechaSync = modelSpences.FechaSync;
oSpences.DebitUniqueIdentifier = modelSpences.DebitUniqueIdentifier;
oSpences.Comment = modelSpences.Comment;
db.Spences.Add(oSpences);
db.SaveChanges();
}
return Ok("Exito");
}
---------------------------------------------------------------------------------------------------------
{
"id": 1,
"SpenceId": 64,
"Spence": 1.0,
"DSpences": "2024-11-18T09:29:43.0913073-05:00",
"dia": "sample string 2",
"DiaNumber": 64,
"DiaSpences": 64,
"MSpences": "sample string 3",
"MonthNumber": 64,
"YSpences": 1,
"CreatedInApp": true,
"BankDebit": true,
"SelfLoans_AfterSync": true,
"FechaSync": "2024-11-18T09:29:43.0922999-05:00",
"DebitUniqueIdentifier": "sample string 4",
"Comment": "test 999 UDEMY"
}
// PUT api/Spences/5
[ResponseType(typeof(void))]
public IHttpActionResult Put(int id, Spences spences)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != spences.id)
{
return BadRequest();
}
db.Entry(spences).State = System.Data.Entity.EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
if (!itemExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
private bool itemExists(int id)
{
return db.Spences.Count(e => e.id == id) > 0;
}
------------------------------------------------------------------------------------------------------
{
"id": 284,
"SpenceId": 64,
"Spence": 1.0,
"DSpences": "2024-11-18T09:29:43.0913073-05:00",
"dia": "sample string 2",
"DiaNumber": 64,
"DiaSpences": 64,
"MSpences": "sample string 3",
"MonthNumber": 64,
"YSpences": 1,
"CreatedInApp": true,
"BankDebit": true,
"SelfLoans_AfterSync": true,
"FechaSync": "2024-11-18T09:29:43.0922999-05:00",
"DebitUniqueIdentifier": "sample string 4",
"Comment": "test 888 UDEMY"
}
public HttpResponseMessage DeleteSpences(int spenceId, DateTime day)
{
try
{
using (SpencesEntities spenceEntities = new SpencesEntities())
{
var entitySpences = spenceEntities.Spences.FirstOrDefault(e => e.SpenceId == spenceId & e.DSpences == day);
if (entitySpences == null)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Expense does not exist!");
}
else
{
spenceEntities.Spences.Remove(entitySpences);
spenceEntities.SaveChanges();
return Request.CreateResponse(HttpStatusCode.OK);
}
}
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
}
}
Mot de passe du logiciel après avoir restauré la base de données = ciro
Dans ce cours tutoriel complet, vous apprendrez à créer une API REST entièrement fonctionnelle à partir de zéro en utilisant Visual Studio, ASP.NET et C#. Que vous soyez débutant ou que vous ayez déjà une certaine expérience en développement logiciel, ce cours vous guidera pas à pas tout au long du processus, depuis la configuration de votre environnement de développement jusqu’à la compréhension du fonctionnement d’une API complète dans un contexte réel.
Nous commencerons par présenter les bases de l’architecture REST et les principes de conception des API. Ensuite, vous passerez à la phase pratique, où vous apprendrez à créer une API REST avec ASP.NET et C#. Les concepts clés tels que le routage, les contrôleurs et les méthodes HTTP (GET, POST, PUT, DELETE) sont expliqués clairement et mis en œuvre étape par étape. Nous aborderons également la gestion des données avec Entity Framework afin d’assurer une communication efficace entre l’API et les bases de données SQL Server.
Un point fort de ce cours est que vous aurez accès à une API REST entièrement fonctionnelle disponible en téléchargement, comprenant plus de 100 méthodes déjà implémentées. Une fois configurée, les étudiants pourront effectuer tous les tests qu’ils souhaitent, aussi bien en lecture qu’en écriture, en utilisant des méthodes telles que PUT et POST. Cela vous permettra d’expérimenter librement, de comprendre le comportement de chaque point d’accès et d’analyser l’interaction entre les différentes couches du système.
De plus, vous disposerez d’une base de données SQL Server préconfigurée ainsi que d’une application de bureau entièrement fonctionnelle connectée à l’API. Vous bénéficierez ainsi d’un écosystème complet que vous pourrez étudier, modifier et intégrer dans vos propres projets afin d’acquérir une expérience pratique et concrète.
Le cours comprend également une section dédiée aux tests et au dépannage. Vous apprendrez à utiliser des outils tels que Postman pour tester l’API, valider les réponses et résoudre efficacement les problèmes courants.
Il est important de noter que ce cours est structuré comme un tutoriel. Il ne comprend pas d’exercices ni de devoirs ; il est entièrement basé sur des vidéos explicatives pas à pas que vous pourrez suivre et reproduire à votre rythme.
À la fin du cours, vous aurez acquis la confiance et les compétences pratiques nécessaires pour créer, tester et analyser des API REST avec ASP.NET et C#, tout en travaillant avec une API complète téléchargeable que vous pourrez continuer à explorer et à enrichir dans vos propres projets.