/// <summary> /// jelszó módosítás /// </summary> /// <param name="request"></param> /// <returns></returns> public CompanyGroup.Dto.PartnerModule.ChangePassword ChangePassword(CompanyGroup.Dto.PartnerModule.ChangePasswordRequest request) { try { //ha üres a látogató azonosító if (String.IsNullOrEmpty(request.VisitorId)) { return new CompanyGroup.Dto.PartnerModule.ChangePassword(false, false, CompanyGroup.Domain.Resources.Messages.validationVisitorIdCannotBeNull, new CompanyGroup.Dto.PartnerModule.Visitor()); } //látogató kikeresése CompanyGroup.Domain.PartnerModule.Visitor visitor = this.GetVisitor(request.VisitorId); //látogató belépésének ellenörzése, csak a személyi belépések esetén lehetséges a jelszómódosítás if (!visitor.LoginType.Equals(LoginType.Person)) { return new CompanyGroup.Dto.PartnerModule.ChangePassword(false, false, CompanyGroup.Domain.Resources.Messages.verification_ChangePasswordNotAllowed, new VisitorToVisitor().Map(visitor)); } //lehetséges-e a megadott adatokkal a jelszómódosítás művelet? CompanyGroup.Domain.PartnerModule.ChangePasswordVerify verify = contactPersonRepository.VerifyChangePassword(visitor.PersonId, request.UserName, request.OldPassword, request.NewPassword, CompanyGroup.Domain.Core.Constants.DataAreaIdHrp); //ha nem lehetséges a jelszómódosítás, akkor kilépés hibaüzenettel if (!verify.Success) { return new CompanyGroup.Dto.PartnerModule.ChangePassword(false, false, verify.Message, new VisitorToVisitor().Map(visitor)); } //jelszómódosítás művelet előkészítése CompanyGroup.Domain.PartnerModule.ChangePasswordCreate changePasswordCreate = new CompanyGroup.Domain.PartnerModule.ChangePasswordCreate() { ContactPersonId = visitor.PersonId, DataAreaId = CompanyGroup.Domain.Core.Constants.DataAreaIdHrp, NewPassword = request.NewPassword, OldPassword = request.OldPassword, WebLoginName = request.UserName }; //jelszómódosítás AX CompanyGroup.Domain.PartnerModule.ChangePasswordCreateResult changePasswordCreateResult = contactPersonRepository.Change(changePasswordCreate); if (changePasswordCreateResult.Code == 0) { changePasswordCreateResult.Code = 1; changePasswordCreateResult.Message = "The operation successfully completed!"; } //jelszómódosítás log hozzáadás CompanyGroup.Domain.PartnerModule.ChangePassword changePassword = new CompanyGroup.Domain.PartnerModule.ChangePassword() { CreatedDate = DateTime.Now, DataAreaId = CompanyGroup.Domain.Core.Constants.DataAreaIdHrp, NewPassword = request.NewPassword, OldPassword = request.OldPassword, UserName = request.UserName, Status = changePasswordCreateResult.Succeeded ? Domain.PartnerModule.ChangePasswordStatus.Active : Domain.PartnerModule.ChangePasswordStatus.Failed, VisitorId = visitor.Id.ToString(), Id = MongoDB.Bson.ObjectId.GenerateNewId() }; changePasswordRepository.Add(changePassword); bool sendMailSucceeded = false; //levél elküldése sikeres esetben if (changePasswordCreateResult.Succeeded) { sendMailSucceeded = this.SendChangePasswordMail(changePassword, visitor); } else { sendMailSucceeded = this.SendChangePasswordFailedMail(changePassword, visitor, changePasswordCreateResult); } string message = (changePasswordCreateResult.Succeeded && !sendMailSucceeded) ? CompanyGroup.Domain.Resources.Messages.verification_ChangePasswordMailSendFailed : changePasswordCreateResult.Message; return new CompanyGroup.Dto.PartnerModule.ChangePassword(changePasswordCreateResult.Succeeded, sendMailSucceeded, message, new VisitorToVisitor().Map(visitor)); } catch (Exception ex) { throw ex; } }
/// <summary> /// jelszómódosítás visszavonása /// </summary> /// <param name="request"></param> /// <returns></returns> public CompanyGroup.Dto.PartnerModule.UndoChangePassword UndoChangePassword(CompanyGroup.Dto.PartnerModule.UndoChangePasswordRequest request) { if (String.IsNullOrEmpty(request.Id)) { return new CompanyGroup.Dto.PartnerModule.UndoChangePassword() { Message = CompanyGroup.Domain.Resources.Messages.validation_ChangePasswordLogIdCannotBeNull, Succeeded = false }; } //visszavonandó jelszómódosítás CompanyGroup.Domain.PartnerModule.ChangePassword chagePassword = changePasswordRepository.GetItemByKey(request.Id); //visszavonandó jelszómódosítás státuszának passzívra állítása changePasswordRepository.SetStatus(request.Id, Domain.PartnerModule.ChangePasswordStatus.Passive); //látogató kikeresése CompanyGroup.Domain.PartnerModule.Visitor visitor = this.GetVisitor(chagePassword.VisitorId); //ha üres a látogató azonosító if (visitor.Id.Equals(MongoDB.Bson.ObjectId.Empty)) { return new CompanyGroup.Dto.PartnerModule.UndoChangePassword() { Message = CompanyGroup.Domain.Resources.Messages.validationVisitorIdCannotBeNull, Succeeded = false }; } //jelszómódosítás művelet előkészítése CompanyGroup.Domain.PartnerModule.ChangePasswordCreate changePasswordCreate = new CompanyGroup.Domain.PartnerModule.ChangePasswordCreate() { ContactPersonId = visitor.PersonId, DataAreaId = chagePassword.DataAreaId, NewPassword = chagePassword.OldPassword, OldPassword = chagePassword.NewPassword, WebLoginName = chagePassword.UserName }; //jelszómódosítás AX (visszaállítás) CompanyGroup.Domain.PartnerModule.ChangePasswordCreateResult changePasswordCreateResult = changePasswordRepository.Change(changePasswordCreate); //jelszómódosítás log hozzáadás CompanyGroup.Domain.PartnerModule.ChangePassword changePasswordLog = new CompanyGroup.Domain.PartnerModule.ChangePassword() { CreatedDate = DateTime.Now, DataAreaId = chagePassword.DataAreaId, NewPassword = changePasswordCreate.NewPassword, OldPassword = changePasswordCreate.OldPassword, UserName = changePasswordCreate.WebLoginName, Status = Domain.PartnerModule.ChangePasswordStatus.Active, VisitorId = visitor.Id.ToString(), Id = MongoDB.Bson.ObjectId.GenerateNewId() }; changePasswordRepository.Add(changePasswordLog); return new CompanyGroup.Dto.PartnerModule.UndoChangePassword() { Message = CompanyGroup.Domain.Resources.Messages.validation_ChangePasswordLogIdCannotBeNull, Succeeded = true }; }