Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
 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;
         }
     }
 }