public void TakeAction([FromBody] ViewModels.Warehouse.TransferProduct viewModel) { if (ModelState.IsValid) { try { var mapperConfig = MapperConfig.Init(); mapperConfig.CreateMap <DataModels.Warehouse.TransferProduct, ViewModels.Warehouse.TransferProduct>(); DataModels.Warehouse.TransferProduct dataModel = viewModel.Map <DataModels.Warehouse.TransferProduct, ViewModels.Warehouse.TransferProduct>(mapperConfig); _dataService.TakeAction(dataModel, viewModel.action, viewModel.actionChoice, viewModel.actionComment); } catch (Exception ex) { _logger.Error(PrepareExceptionMessage(MethodBase.GetCurrentMethod().Name), ex); throw CreateUserException(ex); } } else { var errors = ModelState.Values.SelectMany(value => value.Errors).Select(error => error.ErrorMessage); throw CreateUserException(new OTException(OTErrors.ModelStateInvalid, true, null, errors)); } }
private void startTransferProductProcess(DataModels.Warehouse.TransferProduct dataModel, IDAL dal) { int processDefinitionId = _parameterReader.ReadPublicParameter <int>("MagazalarArasiTransferSureci", 2016); var sourceStore = dal.Read <Store>(dataModel.SourceStore); var intakeBranchId = dataModel.DestinationStore == 999 ? 999 : dal.Read <Store>(dataModel.DestinationStore).OrganizationBranch; GroupOperations gop = new GroupOperations(dal); Group g = gop.FindGroup("Mağazalar Arası Ürün Transfer Kullanıcıları"); Group gWarehouse = gop.FindGroup("Depo Sorumlusu"); IProcessInstance processInstance = new ProcessInstance(processDefinitionId, OTApplication.Context.User.Id); //Set Process Variables processInstance.AddProcessVariable("user", OTApplication.Context.User.Id); processInstance.AddProcessVariable("screenReference", "Warehouse#TransferProductListComponent#" + dataModel.TransferProductId); processInstance.AddProcessVariable("sendBranch", sourceStore.OrganizationBranch); processInstance.AddProcessVariable("transferProductAdminGroup", g.GroupId); processInstance.AddProcessVariable("intakeBranch", intakeBranchId); processInstance.AddProcessVariable("warehouseGroup", gWarehouse.GroupId); processInstance.AddProcessVariable("transferId", dataModel.TransferProductId); processInstance.AddProcessVariable("transferToWarehouse", dataModel.DestinationStore == 999 ? true : false); //Set Action Varibles processInstance.AddActionVariable("user", OTApplication.Context.User.Id); //Start Process var processId = processInstance.Start(dataModel.TransferProductId.ToString()); // Update DB dataModel.ProcessInstance = processId; dataModel.TransferStatus = 2; dal.Update(dataModel); }
public void TriggerTransferProcess(DataModels.Warehouse.TransferProduct dataObject) { using (IDAL dal = this.DAL) { dal.BeginTransaction(); try { startTransferProductProcess(dataObject, dal); dal.CommitTransaction(); } catch { dal.RollbackTransaction(); throw; } } }
public override ViewModels.Warehouse.TransferProduct Create([FromBody] ViewModels.Warehouse.TransferProduct viewModel) { if (ModelState.IsValid) { try { DataModels.Warehouse.TransferProduct dataModel = viewModel.Map <DataModels.Warehouse.TransferProduct, ViewModels.Warehouse.TransferProduct>(mapperConfig); dataModel = _dataService.Create(dataModel); ViewModels.Warehouse.TransferProduct createdModel = dataModel.Map <DataModels.Warehouse.TransferProduct, ViewModels.Warehouse.TransferProduct>(); return(createdModel); } catch (Exception ex) { _logger.Error(PrepareExceptionMessage(MethodBase.GetCurrentMethod().Name), ex); throw CreateUserException(ex); } } else { var errors = ModelState.Values.SelectMany(value => value.Errors).Select(error => error.ErrorMessage); throw CreateUserException(new OTException(OTErrors.ModelStateInvalid, true, null, errors)); } }
public void TakeAction(DataModels.Warehouse.TransferProduct dataObject, long actionId, string choice, string comment) { using (IDAL dal = this.DAL) { dal.BeginTransaction(); try { // var originalObject = dal.Read<DataModels.Announcement.Suggestion>(dataObject.TransferProductId); IActionOperations actionOperations = new Overtech.API.BPM.ActionOperations(OTApplication.Context.User.Id); var actionInfo = actionOperations.GetActionInfo(actionId); IAction action = new Overtech.API.BPM.Action(actionId, OTApplication.Context.User.Id); dal.Update(dataObject); action.Commit(choice, comment); dal.CommitTransaction(); } catch { dal.RollbackTransaction(); throw; } } }