/// <summary> /// 增加轮胎更换记录 /// </summary> /// <param name="entity"></param> /// <param name="OldTyreAction"></param> /// <returns></returns> public ActionResult AddTyreChange(TyreChange entity, string OldTyreAction) { TyreInfo _oldTyre = this.service.GetGenericService <TyreInfo>().Get(entity.OldTyreID); TyreInfo _newTyre = this.service.GetGenericService <TyreInfo>().Get(entity.NewTyreID); #region 合法性逻辑校验 if (_oldTyre.CarID != entity.CarID) { return(OperateResult(false, "轮胎【" + _oldTyre.ID + "】没有安装在车辆" + entity.CarID + "号上", null)); } if (_newTyre.CurrentStatus != TyreStatus.UsAble) { return(OperateResult(false, "轮胎【" + _newTyre.ID + "】不在待用状态", null)); } #endregion try { this.service.TyreChange.AddChange(entity, OldTyreAction); return(OperateResult(true, Lang.Msg_Operate_Success, null)); } catch (Exception ex) { return(OperateResult(false, ex.Message, null)); } }
/// <summary> /// 增加轮胎更换 /// </summary> /// <param name="entity"></param> /// <returns></returns> public override TyreRepair Add(TyreRepair entity) { using (var tx = this.m_UnitOfWork.BeginTransaction()) { try { string tyreId = entity.TyreID; TyreInfo ti = this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Get(tyreId); if (ti.CurrentStatus == TyreStatus.Repair) { throw new Exception("该轮胎已经在维修中!请不要重复提交"); } else if (ti.CurrentStatus == TyreStatus.Scrap) { throw new Exception("该轮胎已经在报废!"); } ti.CurrentStatus = TyreStatus.Repair; this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Update(ti, null); TyreRepair tc = base.Add(entity); tx.Commit(); return(tc); } catch (Exception ex) { tx.Rollback(); logger.Error(ex.Message, ex); throw ex; } } }
public IActionResult AddTyreInfo(TyreInfoAddViewModel model) { if (ModelState.IsValid) { TyreInfo info = new TyreInfo { CarId = model.CarId, TyreName = model.TyreName, Diameter = model.Diameter, Profile = model.Profile, Width = model.Width, SpeedIndex = model.SpeedIndex, Dot = model.Dot, TyreType = model.TyreType, TyreStatus = model.TyreStatus, Id = new Guid() }; if (info.TyreStatus == TyreStatus.Samochód || info.TyreStatus == TyreStatus.Brak) { info.TyreShopId = Guid.Empty; } else { info.TyreShopId = model.TyreShopId; } _tyreInfosRepository.Create(info); return(RedirectToAction("details", "cars", new { id = model.CarId })); } return(RedirectToAction("addtyreinfo", new { carId = model.CarId })); }
public IActionResult Relocate(TyreInfoRelocateViewModel model) { if (ModelState.IsValid) { TyreInfo tyreInfo = _tyreInfosRepository.GetTyreInfo(model.Id); tyreInfo.TyreShopId = model.NewTyreShopId; _tyreInfosRepository.Update(tyreInfo); return(RedirectToAction("details", "cars", new { id = model.CarId })); } return(RedirectToAction("relocate", new { tyreInfoId = model.Id })); }
/// <summary> /// 增加轮胎更换 /// </summary> /// <param name="entity"></param> /// <returns></returns> public TyreChange AddChange(TyreChange entity, string OldTyreAction) { using (var tx = this.m_UnitOfWork.BeginTransaction()) { try { TyreInfo _oldTyre = this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Get(entity.OldTyreID); TyreInfo _newTyre = this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Get(entity.NewTyreID); //新增轮胎更换记录 entity.TyreType = _newTyre.TyreType; entity.InstallPlace = _oldTyre.InstallPlace; TyreChange tc = this.m_UnitOfWork.GetRepositoryBase <TyreChange>().Add(entity); //处理旧轮胎 _oldTyre.CarID = null; _oldTyre.InstallPlace = null; if (OldTyreAction != TyreStatus.Repair) { _oldTyre.CurrentStatus = OldTyreAction; } this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Update(_oldTyre, null); if (OldTyreAction == TyreStatus.Repair) //若旧胎处理为维修,则在新增一条维修记录 { TyreRepair tr = new TyreRepair(); tr.ReceiveDate = DateTime.Now; tr.RepairDate = DateTime.Now; tr.Remark = entity.ChangeReason; tr.RepairType = entity.ChangeReason; tr.TyreID = _oldTyre.ID; new TyreRepairService(this.m_UnitOfWork).Add_noTransaction(tr); } //处理新轮胎 _newTyre.CarID = entity.CarID; _newTyre.InstallPlace = entity.InstallPlace; _newTyre.CurrentStatus = TyreStatus.Using; this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Update(_newTyre, null); tx.Commit(); return(tc); } catch (Exception ex) { tx.Rollback(); logger.Error(ex.Message, ex); throw ex; } } }
public IActionResult Edit(TyreInfoAddViewModel model) { if (ModelState.IsValid) { TyreInfo tyreInfo = _tyreInfosRepository.GetTyreInfo(model.Id); tyreInfo.Profile = model.Profile; tyreInfo.SpeedIndex = model.SpeedIndex; tyreInfo.TyreName = model.TyreName; tyreInfo.TyreStatus = model.TyreStatus; tyreInfo.Width = model.Width; tyreInfo.Diameter = model.Diameter; tyreInfo.Dot = model.Dot; _tyreInfosRepository.Update(tyreInfo); return(RedirectToAction("details", "cars", new { id = model.CarId })); } return(RedirectToAction("edit", new { tyreInfoId = model.Id })); }
public override void Delete(TyreChange entity) { try { string tyreId = entity.NewTyreID; TyreInfo ti = this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Get(tyreId); ti.CurrentStatus = TyreStatus.UsAble; ti.CarID = null; ti.InstallPlace = null; this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Update(ti, null); base.Delete(entity); } catch (Exception ex) { logger.Error(ex.Message, ex); throw ex; } }
public void RepairResult(TyreRepair entity, bool Return) { using (var tx = this.m_UnitOfWork.BeginTransaction()) { try { string tyreId = entity.TyreID; TyreInfo ti = this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Get(tyreId); if (Return) //是否将轮胎归还原车 { ti.CurrentStatus = TyreStatus.Using; } else { if (Convert.ToBoolean(entity.RepairResult)) { ti.CurrentStatus = TyreStatus.UsAble; } else { ti.CurrentStatus = TyreStatus.Scrap; } ti.CarID = null; ti.InstallPlace = null; } this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Update(ti, null); this.m_UnitOfWork.GetRepositoryBase <TyreRepair>().Update(entity, null); this.m_UnitOfWork.Flush(); tx.Commit(); } catch (Exception ex) { tx.Rollback(); logger.Error(ex.Message, ex); throw ex; } } }
/// <summary> /// /// </summary> /// <param name="data"></param> /// <param name="collection"></param> /// <returns></returns> public static dynamic InsertNewTyreInfo(TyreInfo data, IMongoCollection <TyreInfo> collection) { try { #region Create index //collection.Indexes.CreateOne("{ TyreId: " + data.TyreId + " }"); #endregion collection.InsertOne(data); return(true); } catch (Exception ex) { if (ex.Message.Contains("duplicate key error")) { return(ex.Message); } else { SL.CreateLog("MongoHelper", "InsertNewTyreInfo", ex.Message); return(false); } } }
public ActionResult InsertTyreInfo([FromBody] TyreInfo data, string username) { try { if (data != null && username != null) { var checkTyre = MH.GetListOfObjects(tyreinfo_collection, null, null, null, null).Result; foreach (var details in checkTyre) { var deserializedDetails = BsonSerializer.Deserialize <TyreInfo>(details).PurchaseDetails; if (deserializedDetails.TyreNo == data.PurchaseDetails.TyreNo && deserializedDetails.BrandName == data.PurchaseDetails.BrandName) { alreadyAdded = true; } } if (alreadyAdded == true) { return(BadRequest(new ResponseData { Code = "401", Message = "Tyre with same brand and tyre number is already added" })); } else { #region Calculate tyre id var getTyres = MH.GetListOfObjects(tyreinfo_collection, null, null, null, null).Result; if (getTyres.Count == 0) { data.TyreId = "TRE-1"; } else { List <long> idList = new List <long>(); foreach (var tyre in getTyres) { TyreInfo tyreInfo = BsonSerializer.Deserialize <TyreInfo>(tyre); long seperatedId = Convert.ToInt64(tyreInfo.TyreId.Substring(tyreInfo.TyreId.LastIndexOf('-') + 1)); idList.Add(seperatedId); } var maxId = idList.Max(); data.TyreId = "TRE-" + (maxId + 1); } #endregion data.IsActive = true; var insert = MH.InsertNewTyreInfo(data, tyreinfoCollection); if (insert == true) { AL.CreateLog(username, "InsertTyreInfo", null, data, activitylog_collection); return(Ok(new ResponseData { Code = "200", Message = "Inserted", Data = data })); } else { return(BadRequest(new ResponseData { Code = "402", Message = "Tyre info with same id is already added" })); } } } else { return(BadRequest(new ResponseData { Code = "403", Message = "Bad Request" })); } } catch (Exception ex) { SL.CreateLog("TyreController", "InsertTyreInfo", ex.Message); return(BadRequest(new ResponseData { Code = "400", Message = "Failed", Data = ex.Message })); } }