public async Task <ActionResult <MaintenanceItemViewModel> > GetMaintenanceItems(Guid itemId) { List <MaintenanceItem> maintenanceItems = await _context.MaintenanceItems .Include(m => m.Maintenance) .Include(i => i.Item) .Where(mi => mi.ItemId == itemId).ToListAsync(); if (maintenanceItems == null) { return(null); } var item = await _context.Items.FindAsync(itemId); if (item == null) { return(null); } var maintenances = await _context.Maintenances.Where(m => !_context.MaintenanceItems.Any(mi => mi.ItemId == itemId && mi.MaintenanceId == m.Id) ).ToListAsync(); MaintenanceItemViewModel maintenanceItemViewModel = new MaintenanceItemViewModel() { Item = item, Maintenances = maintenances, MaintenanceItems = maintenanceItems }; return(maintenanceItemViewModel); }
public IHttpActionResult Delete(MaintenanceItemViewModel pItem) { try { using (DB_FleetServiceEntities db = new DB_FleetServiceEntities()) { ResponseApiViewModel rta = new ResponseApiViewModel(); var oItemDB = db.MaintenanceItem.Where(it => it.mi_id == pItem.id).FirstOrDefault(); oItemDB.mi_state = false; oItemDB.mi_deleteDate = DateTime.Now; db.SaveChanges(); MaintenanceItemViewModel.DeleteMaintenanceItemOfVehicleTypesAndModels((int)pItem.id); rta.response = true; rta.message = "Se ha eliminado el artículo de mantenimiento: " + pItem.name + " de la base de datos"; return(Ok(rta)); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IHttpActionResult Update(MaintenanceItemViewModel pItem) { try { using (DB_FleetServiceEntities db = new DB_FleetServiceEntities()) { ResponseApiViewModel rta = new ResponseApiViewModel(); var oItemDB = db.MaintenanceItem.Where(it => it.mi_id == pItem.id).FirstOrDefault(); oItemDB.mi_code = pItem.code.ToUpper(); oItemDB.mi_name = pItem.name.ToUpper(); oItemDB.mi_description = (pItem.description != null) ?pItem.description.ToUpper():""; oItemDB.mi_referencePrice = pItem.referencePrice; oItemDB.mi_handleTax = (bool)pItem.handleTax; if (pItem.type == null) { throw new Exception("No se puede actualizar el artículo debido a que no tiene un tipo definido."); } else { oItemDB.tmi_id = (int)pItem.type.id; } if (pItem.presentationUnit == null) { throw new Exception("No se puede actualizar el artículo debido a que no tiene una presentación definida."); } else { oItemDB.pu_id = (int)pItem.presentationUnit.id; } if (pItem.category != null) { oItemDB.mict_id = (int)pItem.category.id; } if (pItem.dealer != null) { if (oItemDB.deal_id != null) { oItemDB.deal_id = pItem.dealer.id; } } oItemDB.mi_updateDate = DateTime.Now; db.SaveChanges(); MaintenanceItemViewModel.DeleteMaintenanceItemOfVehicleTypesAndModels((int)pItem.id); var lsVehicleType = pItem.lsVehicleType; if (lsVehicleType.Count > 0) { MaintenanceItemViewModel.InsertMaintenanceItemByVehicleType((int)pItem.id, lsVehicleType); } var lsVehicleModel = pItem.lsVehicleModel; if (lsVehicleModel.Count > 0) { MaintenanceItemViewModel.InsertMaintenanceItemByVehicleModel((int)pItem.id, lsVehicleModel); } //First remove the old taxes this.deleteTaxesByItem((int)pItem.id); //Update the taxes if (pItem.handleTax == true) { foreach (var tax in pItem.lsTaxes) { TaxesByMaintenanceItem txmi = new TaxesByMaintenanceItem(); txmi.mi_id = (int)pItem.id; txmi.tax_id = (int)tax.id; txmi.txmi_registrationDate = DateTime.Now; db.TaxesByMaintenanceItem.Add(txmi); db.SaveChanges(); } } rta.response = true; rta.message = "Se ha actualizado el artículo de mantenimiento: " + pItem.name + " de la base de datos"; return(Ok(rta)); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IHttpActionResult Insert(MaintenanceItemViewModel pItem) { try { using (DB_FleetServiceEntities db = new DB_FleetServiceEntities()) { ResponseApiViewModel rta = new ResponseApiViewModel(); var itemExists = db.MaintenanceItem.Where(mi => mi.mi_code == pItem.code).FirstOrDefault(); if (itemExists != null) { throw new Exception("No se puede guardar el item de mantenimiento puesto que el código: " + pItem.code + " Ya se encuentra almacenado en la base de datos"); } var oMaintenanceItem = MaintenanceItemViewModel.setDataToItem(pItem); var ItemWasSaved = MaintenanceItemViewModel.InsertIntoDB(oMaintenanceItem); if (ItemWasSaved) { var itemId = MaintenanceItemViewModel.GetMaintenanceItemId(pItem.code); if (itemId != 0) { var lsVehicleType = pItem.lsVehicleType; if (lsVehicleType.Count > 0) { MaintenanceItemViewModel.InsertMaintenanceItemByVehicleType(itemId, lsVehicleType); } var lsVehicleModel = pItem.lsVehicleModel; if (lsVehicleModel.Count > 0) { MaintenanceItemViewModel.InsertMaintenanceItemByVehicleModel(itemId, lsVehicleModel); } if (pItem.handleTax == true) { foreach (var tax in pItem.lsTaxes) { TaxesByMaintenanceItem txmi = new TaxesByMaintenanceItem(); txmi.mi_id = (int)itemId; txmi.tax_id = (int)tax.id; txmi.txmi_registrationDate = DateTime.Now; db.TaxesByMaintenanceItem.Add(txmi); db.SaveChanges(); } } if (pItem.dealer != null) { var itemTemp = db.MaintenanceItem.Where(mi => mi.mi_id == itemId).FirstOrDefault(); itemTemp.deal_id = pItem.dealer.id; db.SaveChanges(); } } rta.response = true; rta.message = "El artículo de mantenimiento " + pItem.code + " fue almacenado correctamente en la base de datos"; return(Ok(rta)); } else { return(BadRequest("Sucedio algo en la inserción del artículo de mantenimiento")); } } } catch (Exception ex) { return(BadRequest(ex.Message)); } }