public void TakeAction(DataModels.Announcement.NotificationStore dataObject, long actionId, string choice, string comment) { var originalObject = GetNotificationStore(dataObject.Notification, dataObject.Store); 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); using (IDAL dal = this.DAL) { dal.BeginTransaction(); try { // dal.Update(originalObject); UpdateNotificationStore(originalObject, dal); action.Commit(choice, comment); dal.CommitTransaction(); } catch { dal.RollbackTransaction(); throw; } } }
private void startNotificationStoreProcess(DataModels.Announcement.NotificationStore dataModel, IDAL dal) { int processDefinitionId = _parameterReader.ReadPublicParameter <int>("SubeDuyuruSureci", 2010); var store = dal.Read <Store>(dataModel.Store); var processInstanceRef = 'N' + dataModel.Notification.ToString() + 'S' + dataModel.Store.ToString(); // var processInstanceRef = dataModel.Notification.ToString(); // var branch = dal.Read<Branch>(store.OrganizationBranch); IProcessInstance processInstance = new ProcessInstance(processDefinitionId, OTApplication.Context.User.Id); //Set Process Variables processInstance.AddProcessVariable("user", OTApplication.Context.User.Id); processInstance.AddProcessVariable("screenReference", "Announcement#NotificationListComponent#" + processInstanceRef); processInstance.AddProcessVariable("branch", store.OrganizationBranch); processInstance.AddProcessVariable("store", dataModel.Store); processInstance.AddProcessVariable("notification", dataModel.Notification); //Set Action Varibles processInstance.AddActionVariable("user", OTApplication.Context.User.Id); //processInstance.AddActionVariable("description", dataModel.Description); //Start Process var processId = processInstance.Start(processInstanceRef); dataModel.ProcessInstance = processId; // dal.Update(dataModel); UpdateNotificationStore(dataModel, dal); }
public void TakeAction([FromBody] ViewModels.Announcement.NotificationStore viewModel) { if (ModelState.IsValid) { try { var mapperConfig = MapperConfig.Init(); mapperConfig.CreateMap <DataModels.Announcement.NotificationStore, ViewModels.Announcement.NotificationStore>(); DataModels.Announcement.NotificationStore dataModel = viewModel.Map <DataModels.Announcement.NotificationStore, ViewModels.Announcement.NotificationStore>(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)); } }
public void PublishNotificationForStore(DataModels.Announcement.NotificationStore dataModel) { using (IDAL dal = this.DAL) { try { dal.BeginTransaction(); startNotificationStoreProcess(dataModel, dal); dal.CommitTransaction(); } catch (Exception ex) { dal.RollbackTransaction(); throw ex; } } }