public async Task <IActionResult> Put(int id, [FromBody] DemandesViewModel demandes) { if (ModelState.IsValid) { try { Demandes _demandes = Mapper.Map <Demandes>(demandes); _unitOfWork.Demandes.Update(_demandes); await _unitOfWork.SaveChangesAsync(); return(Ok("OK")); } catch (Exception ex) { return(BadRequest(ex.Data)); } } else { return(BadRequest(ModelState)); } }
public async Task <IActionResult> Post([FromBody] DemandesViewModel demandes) { if (ModelState.IsValid) { try { Demandes _demandes = Mapper.Map <Demandes>(demandes); Product _product = _unitOfWork.Products.GetAll().FirstOrDefault(e => e.Id == demandes.ProductId); ApplicationUser user = await _accountManager.GetUserByIdAsync(_demandes.userId); _demandes.Product = _product; _demandes.CurrentStat = WorkflowEntryStat(); _demandes.DateDemande = DateTime.Now; _demandes.Process = _unitOfWork.Process.GetAll().FirstOrDefault(e => e.Name == GlobalVars.MAIN_PROCESS_NAME); _unitOfWork.Demandes.Add(_demandes); List <DemandesAction> demandeActions = new List <DemandesAction>(); Actions subMitterAction = new Actions(); var transistion = _unitOfWork.Transition.Find(e => e.EtatActuelId == _demandes.CurrentStatId); foreach (var item in transistion) { var transitionAction = _unitOfWork.TransitionActions.GetAllIncluding(e => e.Actions, k => k.Transition).Where(e => e.TransitionId == item.Id); foreach (var TA in transitionAction) { var submitterAction = _unitOfWork.ActionTarget.GetAll().FirstOrDefault(e => e.ActionsId == TA.ActionsId && e.Target == Target.Demandeur && TA.Transition.EtatActuel.TypeEtats == TypeEtats.Debut); if (submitterAction != null) { subMitterAction = TA.Actions; demandeActions.Add(new DemandesAction { Demandes = _demandes, Transition = item, Actions = TA.Actions, IsActive = false, IsComplete = true, }); } else { demandeActions.Add(new DemandesAction { Demandes = _demandes, Transition = item, Actions = TA.Actions, IsActive = true, IsComplete = false, }); } } } foreach (var item in demandeActions) { _unitOfWork.DemandesAction.Add(item); } _unitOfWork.ActionsHistories.Add(new ActionsHistories { Demandes = _demandes, dateOperation = DateTime.Now, User = user, Etat = _demandes.CurrentStat, Actions = subMitterAction, Comment = "Demande soumis" }); await _unitOfWork.SaveChangesAsync(); if (CanMoveTonextStat(_demandes.Id)) { MoveState(_demandes.Id); } return(Ok("OK")); } catch (Exception ex) { return(BadRequest(ex.Data)); } } else { return(BadRequest(ModelState)); } }