public PersonRequest Base2PersonRequest(BaseRequest baseRequest) { PersonRequest personRequest = new PersonRequest(); personRequest.BusinessUnitID = baseRequest.BusinessUnitID; personRequest.MessageLogId = baseRequest.MessageLogId; personRequest.RequestAction = baseRequest.RequestAction; personRequest.RequestID = baseRequest.RequestID; personRequest.RequestType = baseRequest.RequestType; personRequest.ReturnType = baseRequest.ReturnType; personRequest.ReturnCode = baseRequest.ReturnCode; personRequest.ReturnMessage = baseRequest.ReturnMessage; personRequest.WFMReturnCode = baseRequest.WFMReturnCode; personRequest.WFMReturnMessage = baseRequest.WFMReturnMessage; personRequest.XMLReturnCode = baseRequest.XMLReturnCode; personRequest.XMLReturnMessage = baseRequest.XMLReturnMessage; return personRequest; }
public PersonRequest Clone(PersonDto o) { PersonRequest clone = new PersonRequest(); clone.ApplicationLogOnName = o.ApplicationLogOnName; clone.ApplicationLogOnPassword = o.ApplicationLogOnPassword; clone.CultureLanguageId = o.CultureLanguageId.ToString(); clone.Email = o.Email; clone.EmploymentNumber = o.EmploymentNumber; clone.FirstDayOfWeek = o.FirstDayOfWeek.ToString(); clone.FirstName = o.FirstName; clone.Identity = o.Identity; clone.LastName = o.LastName; clone.Note = o.Note; clone.PersonID = o.Id; if (o.TerminationDate != null) { clone.TerminationDate = o.TerminationDate.DateTime; } else { clone.TerminationDate = new DateTime(); } clone.TimeZoneId = o.TimeZoneId; clone.UICultureLanguageId = o.UICultureLanguageId.ToString(); clone.WindowsDomain = o.WindowsDomain; clone.WindowsLogOnName = o.WindowsLogOnName; return clone; }
public PersonRequest Clone(PersonRequest o) { PersonRequest clone = new PersonRequest(); clone.ApplicationLogOnName = o.ApplicationLogOnName; clone.ApplicationLogOnPassword = o.ApplicationLogOnPassword; clone.BusinessUnitID = o.BusinessUnitID; clone.CultureLanguageId = o.CultureLanguageId; clone.DestinationBusinessUnitID = o.DestinationBusinessUnitID; clone.Email = o.Email; clone.EmploymentNumber = o.EmploymentNumber; clone.FirstDayOfWeek = o.FirstDayOfWeek; clone.FirstName = o.FirstName; clone.Identity = o.Identity; clone.IsProcessed = o.IsProcessed; clone.NewPersonID = o.NewPersonID; clone.Note = o.Note; clone.PersonID = o.PersonID; clone.RequestAction = o.RequestAction; clone.RequestID = o.RequestID; clone.RequestType = o.RequestType; clone.ReturnCode = o.ReturnCode; clone.ReturnMessage = o.ReturnMessage; clone.ReturnType = o.ReturnType; clone.SQLReturnCode = o.SQLReturnCode; clone.SQLReturnMessage = o.SQLReturnMessage; clone.SiteID = o.SiteID; clone.StartDate = o.StartDate; clone.TeamID = o.TeamID; clone.TerminationDate = o.TerminationDate; clone.TimeZoneId = o.TimeZoneId; clone.UICultureLanguageId = o.UICultureLanguageId; clone.WFMReturnCode = o.WFMReturnCode; clone.WFMReturnMessage = o.WFMReturnMessage; clone.WindowsDomain = o.WindowsDomain; clone.WindowsLogOnName = o.WindowsLogOnName; clone.XMLReturnCode = o.XMLReturnCode; clone.XMLReturnMessage = o.XMLReturnMessage; return clone; }
private PersonRequest TransferPerson(PersonRequest personRequest) { SetBusinessUnit(personRequest.DestinationBusinessUnitID); var teamRequest = CheckSiteTeam(personRequest); SetBusinessUnit(personRequest.BusinessUnitID); if (teamRequest.ReturnCode != 0) { return teamRequest; } try { var personToTransfer = TerminatePersonById(personRequest); personToTransfer.BusinessUnitID = personRequest.DestinationBusinessUnitID; personToTransfer.SiteID = personRequest.SiteID; personToTransfer.TeamID = personRequest.TeamID; personToTransfer.StartDate = personRequest.StartDate; if (personToTransfer != null) { SetBusinessUnit(personRequest.DestinationBusinessUnitID); if (personToTransfer.WFMReturnCode == 0) { var createResult = CreatePerson(personToTransfer); personToTransfer.WFMReturnCode = createResult.WFMReturnCode; personToTransfer.WFMReturnMessage = createResult.WFMReturnMessage; personToTransfer.ReturnType = ReturnTypes.ReturnTypeEnum.NoError; personToTransfer.NewPersonID = createResult.NewPersonID; return personToTransfer; } personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; personRequest.WFMReturnCode = personToTransfer.WFMReturnCode; personRequest.WFMReturnMessage = personToTransfer.WFMReturnMessage; return personRequest; } else { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; personRequest.WFMReturnCode = personToTransfer.WFMReturnCode; personRequest.WFMReturnMessage = personToTransfer.WFMReturnMessage; return personRequest; } } catch (Exception ex) { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.UnknownError; personRequest.WFMReturnCode = -1; personRequest.WFMReturnMessage += ex.Message; return personRequest; } }
private PersonRequest PersonTransferRequest(XmlDocument doc) { PersonRequest personRequest = new PersonRequest { RequestType = RequestTypes.RequestTypeEnum.Person, RequestAction = @"Transfer", XMLReturnCode = 0, XMLReturnMessage = @"OK" }; try { Guid requestGuid = Guid.Empty; Guid.TryParse(ProcessNode(doc, "RequestID"), out requestGuid); personRequest.RequestID = requestGuid; personRequest.BusinessUnitID = ProcessNode(doc, "BusinessUnitID"); personRequest.DestinationBusinessUnitID = ProcessNode(doc, "DestinationBusinessUnitID"); personRequest.SiteID = ProcessNode(doc, "DestinationSiteID"); personRequest.TeamID = ProcessNode(doc, "DestinationTeamID"); personRequest.PersonID = ProcessNode(doc, "CurrentPersonID"); DateTime dateTime = new DateTime(); DateTime.TryParse(ProcessNode(doc, "TransferDate"), out dateTime); personRequest.StartDate = dateTime; personRequest.TerminationDate = dateTime; } catch (Exception ex) { Utilities.WriteLog(String.Format(ex.Message + " " + ex.StackTrace)); personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.XmlError; personRequest.XMLReturnCode = -2; personRequest.XMLReturnMessage = ex.Message; } return personRequest; }
public PersonRequest ProcessPersonRequest(PersonRequest personRequest) { if (AuthenticationResultSuccessful) { if (personRequest.RequestType == RequestTypes.RequestTypeEnum.Person) { PersonRequest wfmResult = new PersonRequest(); if (personRequest.RequestAction == @"Create") { wfmResult = CreatePerson(personRequest); } else if (personRequest.RequestAction == @"Assign") { wfmResult = AssignPerson(personRequest); } else if (personRequest.RequestAction == @"Transfer") { wfmResult = TransferPerson(personRequest); } else if (personRequest.RequestAction == @"Terminate") { wfmResult = TerminatePersonById(personRequest); } else { wfmResult.ReturnType = ReturnTypes.ReturnTypeEnum.XmlError; wfmResult.WFMReturnCode = -1000; wfmResult.ReturnCode = wfmResult.WFMReturnCode; wfmResult.WFMReturnMessage += String.Format(@"RequestAction - операция не определена {0}; ", personRequest.RequestAction); } personRequest.ReturnType = wfmResult.ReturnType; personRequest.WFMReturnCode = wfmResult.WFMReturnCode; personRequest.WFMReturnMessage = wfmResult.WFMReturnMessage; personRequest.ReturnCode = wfmResult.WFMReturnCode; personRequest.ReturnMessage = wfmResult.WFMReturnMessage; personRequest.NewPersonID = wfmResult.NewPersonID; Utilities.WriteLog(String.Format(@"WFM Code {0} WFM Message {1}; ", wfmResult.WFMReturnCode, wfmResult.WFMReturnMessage)); } else { personRequest.WFMReturnCode = -1; personRequest.WFMReturnMessage = AuthenticationResultMessage; Utilities.WriteLog(String.Format(@"WFM Code {0} WFM Message {1}; ", personRequest.WFMReturnCode, personRequest.WFMReturnMessage)); } } return personRequest; }
private PersonRequest FindPersonByApplicationLogonNameSlow(PersonRequest personRequest) { try { var result = wfmServiceApplication.OrganizationService.GetPersons(false, false).FirstOrDefault(p => p.ApplicationLogOnName == personRequest.ApplicationLogOnName); if (result != null) { personRequest.WFMReturnCode = 0; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с ApplicationLogOnName [{0}] найден! ", personRequest.ApplicationLogOnName); personRequest.PersonID = result.Id; } else { personRequest.WFMReturnCode = -2; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с ApplicationLogOnName [{0}] НЕ найден! ", personRequest.ApplicationLogOnName); } } catch (Exception ex) { personRequest.WFMReturnCode = -1; personRequest.WFMReturnMessage += ex.Message; } return personRequest; }
private PersonRequest PersonCreateRequest(XmlDocument doc) { PersonRequest personRequest = new PersonRequest { RequestType = RequestTypes.RequestTypeEnum.Person, RequestAction = @"Create", XMLReturnCode = 0, XMLReturnMessage = @"OK" }; try { Guid requestGuid = Guid.Empty; Guid.TryParse(ProcessNode(doc, "RequestID"), out requestGuid); personRequest.RequestID = requestGuid; personRequest.BusinessUnitID = ProcessNode(doc, "BusinessUnitID"); personRequest.Identity = ProcessNode(doc, "Identity"); personRequest.EmploymentNumber = ProcessNode(doc, "EmploymentNumber"); personRequest.ApplicationLogOnName = ProcessNode(doc, "ApplicationLogOnName"); personRequest.ApplicationLogOnPassword = ProcessNode(doc, "ApplicationLogOnPassword"); personRequest.CultureLanguageId = ProcessNode(doc, "CultureLanguageId"); personRequest.Email = ProcessNode(doc, "Email"); personRequest.FirstDayOfWeek = ProcessNode(doc, "FirstDayOfWeek"); personRequest.FirstName = ProcessNode(doc, "FirstName"); personRequest.LastName = ProcessNode(doc, "LastName"); personRequest.Name = ProcessNode(doc, "Name"); personRequest.Note = ProcessNode(doc, "Note"); personRequest.PersonID = ProcessNode(doc, "PersonID"); personRequest.TimeZoneId = ProcessNode(doc, "TimeZoneId"); personRequest.WindowsDomain = ProcessNode(doc, "WindowsDomain"); personRequest.WindowsLogOnName = ProcessNode(doc, "WindowsLogOnName"); DateTime dateTime = new DateTime(); DateTime.TryParse(ProcessNode(doc, "StartDate"), out dateTime); personRequest.StartDate = dateTime; personRequest.SiteID = ProcessNode(doc, "SiteID"); personRequest.TeamID = ProcessNode(doc, "TeamID"); } catch (Exception ex) { Utilities.WriteLog(String.Format(ex.Message + " " + ex.StackTrace)); personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.XmlError; personRequest.XMLReturnCode = -2; personRequest.XMLReturnMessage = ex.Message; } return personRequest; }
private PersonRequest DeletePersonById(PersonRequest personRequest) { var myQueryDto = new GetPersonByIdQueryDto { PersonId = personRequest.PersonID }; try { var result = wfmServiceApplication.OrganizationService.GetPersonsByQuery(myQueryDto).FirstOrDefault(); if (result != null) { if (result.IsDeleted) { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.BusinessError; personRequest.WFMReturnCode = 2; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с ID [{0}] уже удален! ", personRequest.PersonID); return personRequest; } result.IsDeleted = true; result.IsDeletedSpecified = true; wfmServiceApplication.OrganizationService.SavePerson(result); personRequest.WFMReturnCode = 0; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с ID [{0}] удален! ", personRequest.PersonID); } else { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; personRequest.WFMReturnCode = -2; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с ID [{0}] не найден! ", personRequest.PersonID); } } catch (Exception ex) { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.UnknownError; personRequest.WFMReturnCode = -1; personRequest.WFMReturnMessage += ex.Message; } return personRequest; }
private PersonRequest FindPersonByApplicationLogonName(PersonRequest personRequest) { try { var result = entitiesModel.fsp_FindPersonByApplicationLogonName(personRequest.ApplicationLogOnName, 0).FirstOrDefault(); if (result != null && result.PersonId.ToString() != personRequest.PersonID) { personRequest.WFMReturnCode = 0; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с таким ApplicationLogOnName [{0}] найден! ", personRequest.ApplicationLogOnName); } else { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; personRequest.WFMReturnCode = -2; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с ApplicationLogOnName [{0}] НЕ найден! ", personRequest.ApplicationLogOnName); } } catch (Exception ex) { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.UnknownError; personRequest.WFMReturnCode = -1; personRequest.WFMReturnMessage += ex.Message; } return personRequest; }
private PersonRequest CreatePerson(PersonRequest personRequest) { try { var result = FindPersonByIdentity(personRequest); if (result.WFMReturnCode == 0) { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; personRequest.WFMReturnCode = -101; personRequest.WFMReturnMessage += String.Format(@"Уже есть сотрудник с таким Identity [{0}]! ", personRequest.Identity); return personRequest; } var result2 = FindPersonByEmploymentNumber(personRequest); if (result2.WFMReturnCode == 0) { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; personRequest.WFMReturnCode = -102; personRequest.WFMReturnMessage += String.Format(@"Уже есть сотрудник с таким EmploymentNumber [{0}]! ", personRequest.EmploymentNumber); return personRequest; } var result3 = FindPersonByApplicationLogonName(personRequest); if (result3.WFMReturnCode == 0) { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; personRequest.WFMReturnCode = -103; personRequest.WFMReturnMessage += String.Format(@"Уже есть сотрудник с таким ApplicationLogonName [{0}]! ", personRequest.ApplicationLogOnName); return personRequest; } PersonDto personDto = new PersonDto(); personDto.ApplicationLogOnName = personRequest.ApplicationLogOnName; personDto.ApplicationLogOnPassword = personRequest.ApplicationLogOnPassword; int cultureLanguageId = 0; int.TryParse(personRequest.CultureLanguageId, out cultureLanguageId); personDto.CultureLanguageId = cultureLanguageId; personDto.CultureLanguageIdSpecified = true; personDto.Email = personRequest.Email; personDto.EmploymentNumber = personRequest.EmploymentNumber; int firstDayOfWeek = 0; int.TryParse(personRequest.FirstDayOfWeek, out firstDayOfWeek); personDto.FirstDayOfWeek = DayOfWeek.Monday; personDto.FirstDayOfWeekSpecified = true; personDto.FirstName = personRequest.FirstName; personDto.Identity = personRequest.Identity; personDto.IsDeleted = false; personDto.IsDeletedSpecified = true; personDto.LastName = personRequest.LastName; int uicultureLanguageId = 0; int.TryParse(personRequest.UICultureLanguageId, out uicultureLanguageId); personDto.UICultureLanguageId = uicultureLanguageId; personDto.Name = personRequest.Name; personDto.Note = personRequest.Note; personDto.TerminationDate = null; personDto.TimeZoneId = personRequest.TimeZoneId; personDto.WindowsDomain = personRequest.WindowsDomain; personDto.WindowsLogOnName = personRequest.WindowsLogOnName; wfmServiceApplication.OrganizationService.AddPerson(personDto); var findNewPerson = FindPersonByEmploymentNumber(personRequest); if (findNewPerson.WFMReturnCode == 0) { personRequest.WFMReturnCode = 0; personRequest.WFMReturnMessage += String.Format(@"Сотрудник ID [{0}] добавлен в Бизнес-Юнит [{1}]; ", findNewPerson.PersonID, BusinessUnit); var assignRes = AssignPerson(personRequest); personRequest.NewPersonID = findNewPerson.PersonID; personRequest.WFMReturnCode = assignRes.WFMReturnCode; personRequest.WFMReturnMessage = assignRes.WFMReturnMessage; personRequest.ReturnType = assignRes.ReturnType; } } catch (Exception ex) { personRequest.WFMReturnCode = -1; personRequest.WFMReturnMessage += ex.Message; personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.UnknownError; } return personRequest; }
private PersonRequest CheckSiteTeam(PersonRequest personRequest) { PersonRequest resultRequest = new PersonRequest(); resultRequest = resultRequest.Clone(personRequest); var SiteID = personRequest.SiteID; if (string.IsNullOrEmpty(SiteID)) { resultRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; resultRequest.WFMReturnCode = -1; resultRequest.WFMReturnMessage += String.Format(@"Не задан ID сайта: [{0}]! ", SiteID); resultRequest.ReturnCode = resultRequest.WFMReturnCode; resultRequest.ReturnMessage = resultRequest.WFMReturnMessage; return resultRequest; } var mySite = GetSiteById(SiteID); if (mySite == null) { resultRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; resultRequest.WFMReturnCode = -1; resultRequest.WFMReturnMessage += String.Format(@"Нет сайта с таким ID: [{0}] в BU [{1}]! ", SiteID, BusinessUnit); resultRequest.ReturnCode = resultRequest.WFMReturnCode; resultRequest.ReturnMessage = resultRequest.WFMReturnMessage; return resultRequest; } var TeamID = personRequest.TeamID; if (string.IsNullOrEmpty(TeamID)) { resultRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; resultRequest.WFMReturnCode = -1; resultRequest.WFMReturnMessage += String.Format(@"Нет задан ID группы (TeamID)! "); resultRequest.ReturnCode = resultRequest.WFMReturnCode; resultRequest.ReturnMessage = resultRequest.WFMReturnMessage; return resultRequest; } var myTeam = GetTeamById(TeamID); if (myTeam == null) { resultRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; resultRequest.WFMReturnCode = -1; resultRequest.WFMReturnMessage += String.Format(@"Нет группы с таким ID: [{0}]! ", TeamID); resultRequest.ReturnCode = resultRequest.WFMReturnCode; resultRequest.ReturnMessage = resultRequest.WFMReturnMessage; return resultRequest; } if (!CheckTeamBySite(SiteID, TeamID)) { resultRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; resultRequest.WFMReturnCode = -1; resultRequest.WFMReturnMessage += String.Format(@"Нет группы с таким ID: [{0}] в сайте [{1}] Бизнес-юнита [{2}]! ", TeamID, mySite.DescriptionName, BusinessUnit); resultRequest.ReturnCode = resultRequest.WFMReturnCode; resultRequest.ReturnMessage = resultRequest.WFMReturnMessage; return resultRequest; } resultRequest.WFMReturnCode = 0; resultRequest.WFMReturnMessage += @"OK; "; resultRequest.ReturnCode = resultRequest.WFMReturnCode; resultRequest.ReturnMessage = resultRequest.WFMReturnMessage; return resultRequest; }
private PersonRequest AssignPerson(PersonRequest personRequest) { PersonPeriodLoadOptionDto loadOptionDto = new PersonPeriodLoadOptionDto(); DateOnlyDto dateOnlyDto1 = new DateOnlyDto(); dateOnlyDto1.DateTime = DateTime.Parse("1900.01.01"); dateOnlyDto1.DateTimeSpecified = true; DateOnlyDto dateOnlyDto2 = new DateOnlyDto(); dateOnlyDto2.DateTime = DateTime.Now; dateOnlyDto2.DateTimeSpecified = true; loadOptionDto.LoadAll = true; loadOptionDto.LoadAllSpecified = true; var myQueryDto = new GetPersonByIdQueryDto { PersonId = personRequest.PersonID }; try { var result = wfmServiceApplication.OrganizationService.GetPersonsByQuery(myQueryDto).FirstOrDefault(); if (result != null) { PersonPeriodDto personPeriod = new PersonPeriodDto(); personPeriod.Period = new DateOnlyPeriodDto(); personPeriod.Period.StartDate = new DateOnlyDto(); personPeriod.Period.StartDate.DateTime = personRequest.StartDate; personPeriod.Period.StartDate.DateTimeSpecified = true; var teamRequest = CheckSiteTeam(personRequest); if (teamRequest.ReturnCode != 0) { return teamRequest; } var myTeam = GetTeamById(personRequest.TeamID); personPeriod.Team = myTeam; personPeriod.PersonContract = new PersonContractDto(); LoadOptionDto contractDto = new LoadOptionDto(); contractDto.LoadDeleted = false; contractDto.LoadDeletedSpecified = true; var contract = wfmServiceApplication.OrganizationService.GetContracts(contractDto).FirstOrDefault(); if (contract != null) { personPeriod.PersonContract.ContractId = contract.Id; } LoadOptionDto partTimeDto = new LoadOptionDto(); partTimeDto.LoadDeleted = false; partTimeDto.LoadDeletedSpecified = true; var partTimesPercentage = wfmServiceApplication.OrganizationService.GetPartTimePercentages(contractDto).FirstOrDefault(); if (contract != null) { personPeriod.PersonContract.PartTimePercentageId = partTimesPercentage.Id; } LoadOptionDto contractScheduleDto = new LoadOptionDto(); contractScheduleDto.LoadDeleted = false; contractScheduleDto.LoadDeletedSpecified = true; var contractSchedule = wfmServiceApplication.OrganizationService.GetContractSchedules(contractScheduleDto).FirstOrDefault(); if (contractSchedule != null) { personPeriod.PersonContract.ContractScheduleId = contractSchedule.Id; } personPeriod.SchedulePreferenceDate = personRequest.StartDate; personPeriod.SchedulePublishedToDate = personRequest.StartDate; wfmServiceApplication.OrganizationService.AddPersonPeriod(result, personPeriod); personRequest.WFMReturnCode = 0; personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.NoError; personRequest.WFMReturnMessage += String.Format(@"Сотрудник ID [{0}] назначен в Бизнес-Юнит [{1}] в [{2}]; ", myQueryDto.PersonId, BusinessUnit, myTeam.SiteAndTeam); } else { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; personRequest.WFMReturnCode = -2; personRequest.WFMReturnMessage += String.Format(@"Сотрудник Id [{0}] НЕ найден! ", myQueryDto.PersonId); } } catch (Exception ex) { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.UnknownError; personRequest.WFMReturnCode = -1; personRequest.WFMReturnMessage += ex.Message; personRequest.ReturnCode = -1; personRequest.ReturnMessage = personRequest.WFMReturnMessage; } return personRequest; }
public BaseRequest OutputXMLParse2BaseResponse(string XMLString) { PersonRequest personRequest = new PersonRequest { }; try { XmlDocument doc = new XmlDocument(); doc.LoadXml(XMLString); //Utilities.WriteLog(String.Format(Utilities.Cut(doc.ToString(), 100))); string docName = doc.DocumentElement.Name; Guid requestGuid = Guid.Empty; Guid.TryParse(ProcessNode(doc, "RequestID"), out requestGuid); personRequest.RequestID = requestGuid; Guid MessageLogId = Guid.Empty; Guid.TryParse(ProcessNode(doc, "MessageLogId"), out MessageLogId); personRequest.MessageLogId = MessageLogId; int returnCode = 0; int.TryParse(ProcessNode(doc, "ReturnCode"), out returnCode); personRequest.ReturnCode = returnCode; personRequest.ReturnMessage = ProcessNode(doc, "ReturnMessage"); } catch (Exception ex) { Utilities.WriteLog(String.Format(ex.Message + " " + ex.StackTrace)); personRequest.XMLReturnCode = -2; personRequest.XMLReturnMessage = ex.Message; } return personRequest; }
private PersonRequest FindPersonByEmploymentNumber(PersonRequest personRequest) { var myQueryDto = new GetPersonByEmploymentNumberQueryDto(); myQueryDto.EmploymentNumber = personRequest.EmploymentNumber; try { var result = wfmServiceApplication.OrganizationService.GetPersonsByQuery(myQueryDto).FirstOrDefault(); if (result != null && personRequest.PersonID != result.Id) { personRequest.WFMReturnCode = 0; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с EmploymentNumber [{0}] найден; ", myQueryDto.EmploymentNumber); ; personRequest.PersonID = result.Id; } else { personRequest.WFMReturnCode = -2; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с EmploymentNumber [{0}] не найден! ", myQueryDto.EmploymentNumber); } } catch (Exception ex) { personRequest.WFMReturnCode = -1; personRequest.WFMReturnMessage += ex.Message; } return personRequest; }
public PersonRequest ProcessInputXMLPerson(string messageText) { PersonRequest personRequest = new PersonRequest(); try { XmlDocument doc = new XmlDocument(); doc.LoadXml(messageText); //Utilities.WriteLog(String.Format(Utilities.Cut(doc.ToString(),100))); string docElementName = doc.DocumentElement.Name; var parsedDocElementName = docElementName.Split('.'); var requestType = parsedDocElementName[0]; var requestAction = parsedDocElementName[1]; var requestMark = parsedDocElementName[2]; if (requestType == @"Person") { personRequest.RequestType = RequestTypes.RequestTypeEnum.Person; if (requestAction == @"Create") { personRequest = PersonCreateRequest(doc); } else if (requestAction == @"Terminate") { personRequest = PersonTerminateRequest(doc); } else if (requestAction == @"Assign") { personRequest = PersonAssignRequest(doc); } else if (requestAction == @"Transfer") { personRequest = PersonTransferRequest(doc); } else { personRequest.RequestAction = @"None"; } } else { personRequest.RequestType = RequestTypes.RequestTypeEnum.None; } } catch (Exception ex) { Utilities.WriteLog(String.Format(ex.Message + " " + ex.StackTrace)); personRequest.XMLReturnCode = -1; personRequest.XMLReturnMessage = ex.Message; } return personRequest; }
private PersonRequest FindPersonByIdentity(PersonRequest personRequest) { var myQueryDto = new GetPersonByIdentityQueryDto(); myQueryDto.Identity = personRequest.Identity; try { var result = wfmServiceApplication.OrganizationService.GetPersonsByQuery(myQueryDto).FirstOrDefault(); if (result != null && result.Id != personRequest.PersonID) { personRequest.WFMReturnCode = 0; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с Identity [{0}] найден; ", myQueryDto.Identity); ; personRequest.PersonID = result.Id; } else { personRequest.WFMReturnCode = -2; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с Identity [{0}] НЕ найден! ", myQueryDto.Identity); } } catch (Exception ex) { personRequest.WFMReturnCode = -1; personRequest.WFMReturnMessage += ex.Message; } return personRequest; }
private PersonRequest PersonDeleteRequest(XmlDocument doc) { PersonRequest personRequest = new PersonRequest { RequestType = RequestTypes.RequestTypeEnum.Person, RequestAction = @"Delete", XMLReturnCode = 0, XMLReturnMessage = @"OK" }; try { Guid requestGuid = Guid.Empty; Guid.TryParse(ProcessNode(doc, "RequestID"), out requestGuid); personRequest.RequestID = requestGuid; personRequest.BusinessUnitID = ProcessNode(doc, "BusinessUnitID"); personRequest.PersonID = ProcessNode(doc, "PersonID"); } catch (Exception ex) { Utilities.WriteLog(String.Format(ex.Message + " " + ex.StackTrace)); personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.XmlError; personRequest.XMLReturnCode = -2; personRequest.XMLReturnMessage = ex.Message; } return personRequest; }
private PersonRequest TerminatePersonById(PersonRequest personRequest) { var myQueryDto = new GetPersonByIdQueryDto { PersonId = personRequest.PersonID }; try { var personToTerminate = wfmServiceApplication.OrganizationService.GetPersonsByQuery(myQueryDto).FirstOrDefault(); var terminationDate = personRequest.TerminationDate; personRequest = personRequest.Clone(personToTerminate); personRequest.TerminationDate = terminationDate; if (personToTerminate != null) { DateOnlyDto dateOnly = new DateOnlyDto(); dateOnly.DateTime = personRequest.TerminationDate; dateOnly.DateTimeSpecified = true; personToTerminate.TerminationDate = dateOnly; personToTerminate.ApplicationLogOnName = personToTerminate.Id; personToTerminate.WindowsDomain = @"-"; personToTerminate.WindowsLogOnName = @"-"; personToTerminate.EmploymentNumber = personToTerminate.Id; personToTerminate.Identity = personToTerminate.Id; wfmServiceApplication.OrganizationService.UpdatePerson(personToTerminate); personRequest.WFMReturnCode = 0; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с ID [{0}] уволен: OK; ", personRequest.PersonID); personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.NoError; } else { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.DataError; personRequest.WFMReturnCode = -2; personRequest.WFMReturnMessage += String.Format(@"Сотрудник с ID [{0}] НЕ найден! ", myQueryDto.PersonId); } } catch (Exception ex) { personRequest.ReturnType = ReturnTypes.ReturnTypeEnum.UnknownError; personRequest.WFMReturnCode = -1; personRequest.WFMReturnMessage += ex.Message; } return personRequest; }
public string OutputXMLMessageGenerate(Guid MessageLogId, PersonRequest personRequest) { //<? xml version = "1.0" ?> //< PersonCreate.response xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" > //< RequestID > 13B77B73 - A80D - 4E65 - BCC1 - B045867CE038 </ RequestID > //< PersonID > FFD9C2F7 - 70C4 - 4EBF - 90F4 - A30600FFF235 </ PersonID > //< ReturnCode > 0 </ ReturnCode > //< ReturnMessage > OK </ ReturnMessage > //</ PersonCreate.response > string newPersonID = @""; newPersonID = personRequest.NewPersonID; XElement result = null; if (!string.IsNullOrEmpty(newPersonID)) { result = new XElement(personRequest.RequestType.ToString() + @"." + personRequest.RequestAction + @".response", new XElement("MessageLogId", MessageLogId), new XElement("RequestID", personRequest.RequestID.ToString()), new XElement("BusinessUnitID", personRequest.BusinessUnitID), new XElement("NewPersonID", newPersonID), new XElement("ReturnType", personRequest.ReturnType.ToString()), new XElement("ReturnCode", personRequest.ReturnCode), new XElement("ReturnMessage", personRequest.ReturnMessage) ); } else { result = new XElement(personRequest.RequestType.ToString() + @"." + personRequest.RequestAction + @".response", new XElement("MessageLogId", MessageLogId), new XElement("RequestID", personRequest.RequestID.ToString()), new XElement("BusinessUnitID", personRequest.BusinessUnitID), new XElement("ReturnType", personRequest.ReturnType.ToString()), new XElement("ReturnCode", personRequest.ReturnCode), new XElement("ReturnMessage", personRequest.ReturnMessage) ); } return result.ToString(); }
public void MessageSend(Guid MessageLogId, PersonRequest personRequest) { try { var xmlMessage = xmlHelper.OutputXMLMessageGenerate(MessageLogId, personRequest); entitiesModel.fsp_MessageLog_OutputMessageUpdate(MessageLogId, xmlMessage, 0); Message msg = new TextMessage(emsSession, xmlMessage); msgProducer.Send(destination, msg, completionListener); } catch (Exception ex) { Utilities.WriteExceptionMessageToLog(ex); } }