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; } } }
/*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); }