コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
            }
        }