
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);
}
}
Password per il software dopo aver ripristinato il database = ciro
In questo corso tutorial completo, imparerai a creare un’API REST completamente funzionale partendo da zero utilizzando Visual Studio, ASP.NET e C#. Che tu sia un principiante o abbia già una certa esperienza nello sviluppo software, questo corso ti guiderà passo dopo passo attraverso l’intero processo, dalla configurazione dell’ambiente di sviluppo fino alla comprensione del funzionamento di un’API completa in uno scenario reale.
Inizieremo introducendo i fondamenti dell’architettura REST e i principi di progettazione delle API. Successivamente passerai alla parte pratica, dove imparerai a creare un’API REST con ASP.NET e C#. Verranno spiegati e implementati passo dopo passo concetti chiave come routing, controller e metodi HTTP (GET, POST, PUT, DELETE). Inoltre, tratteremo la gestione dei dati con Entity Framework per garantire una comunicazione efficiente tra l’API e i database SQL Server.
Uno dei punti di forza del corso è che avrai accesso a un’API REST completamente funzionale disponibile per il download, che include oltre 100 metodi già implementati. Una volta configurata, gli studenti potranno eseguire tutte le prove che desiderano, sia di lettura che di scrittura, utilizzando metodi come PUT e POST. Questo ti permetterà di sperimentare liberamente, comprendere il comportamento di ogni endpoint e analizzare come interagiscono i diversi livelli del sistema.
Inoltre, avrai accesso a un database SQL Server preconfigurato e a un’applicazione desktop completamente funzionale collegata all’API. Avrai così a disposizione un ecosistema completo da studiare, modificare e integrare nei tuoi progetti, acquisendo un’esperienza pratica e concreta.
Il corso include anche una sezione dedicata ai test e alla risoluzione dei problemi. Imparerai a utilizzare strumenti come Postman per testare l’API, validare le risposte e risolvere efficemente i problemi più comuni.
È importante sottolineare che questo corso è strutturato come un tutorial. Non include esercizi o compiti; è composto esclusivamente da video tutorial passo dopo passo che potrai seguire e replicare al tuo ritmo.
Alla fine del corso, avrai acquisito la sicurezza e le competenze pratiche necessarie per creare, testare e analizzare API REST con ASP.NET e C#, lavorando con un’API completa scaricabile che potrai continuare a esplorare e ampliare nei tuoi progetti.