Example #1
0
        public void TakeAction([FromBody] ViewModels.Helpdesk.HelpdeskRequest viewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var mapperConfig = MapperConfig.Init();

                    mapperConfig.CreateMap <DataModels.Helpdesk.HelpdeskRequest, ViewModels.Helpdesk.HelpdeskRequest>();
                    DataModels.Helpdesk.HelpdeskRequest dataModel = viewModel.Map <DataModels.Helpdesk.HelpdeskRequest, ViewModels.Helpdesk.HelpdeskRequest>(mapperConfig);

                    _dataService.TakeAction(dataModel, viewModel.action, viewModel.actionChoice, viewModel.actionComment);
                }
                catch (Exception ex)
                {
                    _logger.Error(PrepareExceptionMessage(System.Reflection.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.Helpdesk.HelpdeskRequest dataObject, long actionId, string choice, string comment)
        {
            using (IDAL dal = this.DAL)
            {
                dal.BeginTransaction();
                try
                {
                    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);

                    switch (choice)
                    {
                    case "Çözüldü": dataObject.StatusCode = (int)RequestStatusList.Cozuldu; break;

                    case "Revize": dataObject.StatusCode = (int)RequestStatusList.Revize; break;

                    case "Tamam": dataObject.StatusCode = (int)RequestStatusList.RevizeTamam; break;

                    case "Momende": dataObject.StatusCode = (int)RequestStatusList.Momende; break;

                    case "Yönlendirildi": dataObject.StatusCode = (int)RequestStatusList.Yonlendirildi; break;

                    case "Servise Alındı": dataObject.StatusCode = (int)RequestStatusList.ServiseAlindi; break;

                    case "Askıya Alındı": dataObject.StatusCode = (int)RequestStatusList.AskiyaAlindi; break;

                    case "Hurdaya Ayrıldı": dataObject.StatusCode = (int)RequestStatusList.HurdayaAlindi; break;

                    case "Reddedildi": dataObject.StatusCode = (int)RequestStatusList.Iptal; break;

                    case "Tamamlandı": dataObject.StatusCode = (int)RequestStatusList.CozumOnaylandi; break;

                    case "Çözülmedi": dataObject.StatusCode = (int)RequestStatusList.Cozulmemis; break;

                    case "Yenisi gönderildi": dataObject.StatusCode = (int)RequestStatusList.YenisiGonderildi; break;
                    }

                    dal.Update(dataObject);

                    action.Commit(choice, comment);

                    dal.CommitTransaction();
                }
                catch
                {
                    dal.RollbackTransaction();
                    throw;
                }
            }
        }
Example #3
0
 /*Section="CustomCodeRegion"*/
 #region Customized
 public override HelpdeskRequest Create([FromBody] HelpdeskRequest viewModel)
 {
     DataModels.Helpdesk.HelpdeskRequest dmrec = viewModel.Map <Overtech.DataModels.Helpdesk.HelpdeskRequest, HelpdeskRequest>(mapperConfig);
     return(_dataService.CreateRequest(dmrec).Map <Overtech.DataModels.Helpdesk.HelpdeskRequest, HelpdeskRequest>(mapperConfig));
     // return base.Create(viewModel);
 }
        /*Section="CustomCodeRegion"*/
        #region Customized

        private void startHelpDeskProcess(DataModels.Helpdesk.HelpdeskRequest dataModel, IDAL dal)
        {
            bool            yardimciMalzeme     = (dataModel.ProcessName == "YardimMasasiYardimciMalzeme");
            bool            bilgislem           = (dataModel.ProcessName == "YardimMasasiAriza");
            int             processDefinitionId = _parameterReader.ReadPublicParameter <int>(dataModel.ProcessName, dataModel.Process);
            var             store  = dal.Read <Store>(dataModel.Store);
            var             branch = dal.Read <Branch>(store.OrganizationBranch);
            GroupOperations gop    = new GroupOperations(dal);

            IProcessInstance processInstance = new ProcessInstance(processDefinitionId, OTApplication.Context.User.Id);

            //Set Process Variables
            processInstance.AddProcessVariable("user", OTApplication.Context.User.Id);
            processInstance.AddProcessVariable("screenReference", "Helpdesk#HelpdeskRequestListComponent#" + dataModel.HelpdeskRequestId);
            processInstance.AddProcessVariable("branch", store.OrganizationBranch);
            processInstance.AddProcessVariable("region", branch.Parent);
            processInstance.AddProcessVariable("requestId", dataModel.HelpdeskRequestId);
            if (yardimciMalzeme)
            {
                Overtech.DataModels.Security.Group g = gop.FindGroup("Satın Alma");
                processInstance.AddProcessVariable("purchasingGroup", g.GroupId);
                g = gop.FindGroup("Depo Sorumlusu");
                processInstance.AddProcessVariable("warehouseGroup", g.GroupId);
                g = gop.FindGroup("İdari İşler");
                processInstance.AddProcessVariable("executiveStaffGroup", g.GroupId);
            }
            else if (bilgislem)
            {
                Overtech.DataModels.Security.Group g = gop.FindGroup("Momende");
                processInstance.AddProcessVariable("momendeGroup", g.GroupId);
                g = gop.FindGroup("Bilgi Sistemleri Kullanıcıları");
                processInstance.AddProcessVariable("bilgiIslemGroup", g.GroupId);
            }
            processInstance.AddProcessVariable("description", dataModel.RequestDescription);
            string storeName = dal.List <Store>("STR_LST_STORE_SP").Where(s => s.StoreId == dataModel.Store)
                               .Select(s => s.Name)
                               .FirstOrDefault();

            processInstance.AddProcessVariable("storeName", storeName);
            string definitionName = dal.List <RequestDefinition>("HDK_LST_REQUESTDEF_SP").Where(rd => rd.RequestDefinitionId == dataModel.RequestDefinition)
                                    .Select(rd => rd.RequestDefinitionName)
                                    .FirstOrDefault();

            processInstance.AddProcessVariable("definition", definitionName);
            string deviceNo = "-";
            IEnumerable <DataModels.Helpdesk.RequestAttribute> deviceAttributeList = dal.List <DataModels.Helpdesk.RequestAttribute>("HDK_LST_ATTRIBUTE_SP")
                                                                                     .Where(a => a.AttributeType > 4 && a.RequestDefinition == dataModel.RequestDefinition);

            dataModel.RequestDetailList.ForEach(rd =>
            {
                if (deviceNo == "-")
                {
                    for (int i = 0; i < deviceAttributeList.Count(); i++)
                    {
                        DataModels.Helpdesk.RequestAttribute da = deviceAttributeList.ElementAt(i);
                        if (da.RequestAttributeId == rd.Attribute)
                        {
                            string deviceName;
                            string serialNo;
                            switch (da.AttributeType)
                            {
                            case 5:     // TERAZI
                                StoreScales scale = dal.Read <StoreScales>(Int32.Parse(rd.AttributeValue));
                                deviceName        = scale.BrandName ?? "";
                                serialNo          = scale.SerialNumber ?? "";
                                i = deviceAttributeList.Count();
                                break;

                            case 6:      // YAZARKASA
                                StoreCashRegister cashRegister = dal.Read <StoreCashRegister>(Int32.Parse(rd.AttributeValue));
                                deviceName = cashRegister.BrandName ?? "";
                                serialNo   = cashRegister.SerialNo ?? "";
                                i          = deviceAttributeList.Count();
                                break;

                            case 7:      // DEMIRBAS
                                StoreFixture fixture = dal.Read <StoreFixture>(Int32.Parse(rd.AttributeValue));
                                deviceName           = fixture.FixtureName ?? "";
                                serialNo             = fixture.SerialNo ?? "";
                                i = deviceAttributeList.Count();
                                break;

                            default:
                                deviceName = "";
                                serialNo   = "";
                                i          = deviceAttributeList.Count();
                                break;
                            }

                            deviceNo = deviceName + (serialNo.Length > 0 ? "-" + serialNo : "");
                        }
                    }
                    ;
                }
            });
            processInstance.AddProcessVariable("deviceNo", deviceNo);

            //Set Action Varibles
            processInstance.AddActionVariable("user", OTApplication.Context.User.Id);
            //processInstance.AddActionVariable("description", $"{store.Name} - {product.Name}");

            //Start Process
            var processId = processInstance.Start(dataModel.HelpdeskRequestId.ToString());

            dataModel.ProcessInstance = processId;
            dataModel.StatusCode      = 1;
            dal.Update(dataModel);
        }