bool IUserTaskManager.ResetPassword(Guid tenantId, Guid userId) { var queryFilter = new List <QueryFilter>(); queryFilter.Add(new QueryFilter { FieldName = "TenantId", Operator = "Equal", Value = tenantId.ToString() }); queryFilter.Add(new QueryFilter { FieldName = "InternalId", Operator = "Equal", Value = userId.ToString() }); var queryContext = new QueryContext { Fields = "FirstName,LastName,MiddleName,UserCredential.Username", Filters = queryFilter, PageSize = 100, PageIndex = 1, MaxResult = 1 }; byte[] passwordHash, passwordSalt; Random random = new Random(); int pass = random.Next(1000000); // pass=1234; SqlMembershipProvider.CreatePasswordHash(pass.ToString(), out passwordHash, out passwordSalt); DataTable dataTableUser = _iEntityResourceManager.GetResultById(tenantId, "user", userId, queryContext); User userEntity = EntityMapper <User> .Mapper(dataTableUser); if (Guid.Parse(userEntity.InternalId.Value) == Guid.Empty) { return(false); } CredentialInfo credentialData = crd.GetCredential(tenantId, Guid.Parse(userEntity.InternalId.Value)); var jObject = DataUtility.ConvertToJObjectList(dataTableUser); jObject[0].Add(new JProperty("UserCredential.Username", credentialData.UserName.ToString())); jObject[0].Add(new JProperty("UserCredential.Password", pass.ToString())); var emailTemplate = _iEntityResourceManager.GetWellKnownTemplate(tenantId, "emailtemplate", "user", (int)ContextTypeEnum.Forgotpassword, jObject[0]); if (emailTemplate != null && emailTemplate.Body != null) { CredentialInfo usercredentialinfo = crd.GetCredential(tenantId, userId); bool isnew = _sqlMembership.CheckResetOnFirstLogin(tenantId); crd.Update(tenantId, new CredentialInfo { CredentialId = credentialData.CredentialId, ParentId = Guid.Parse(userEntity.InternalId.Value), PasswordHash = Convert.ToBase64String(passwordHash), PasswordSalt = Convert.ToBase64String(passwordSalt), IsNew = isnew }); var returnVal = DataUtility.SaveEmail(tenantId, Guid.Parse(userEntity.InternalId.Value), emailTemplate, credentialData.UserName.ToString(), "ResetPassword", InfoType.User); } else { return(false); } return(true); }
WorkFlowProcessMessage IOperation.Execute(dynamic obj) { IEntityQueryManager _queryManager = new EntityQueryManager(); IMetadataManager iMetadataManager = new MetadataManager.Contracts.MetadataManager(); var objWorkFlowProcessMessage = new WorkFlowProcessMessage(); try { objWorkFlowProcessMessage = new WorkFlowProcessMessage { Success = true }; var workFlowProcessProperties = (WorkFlowProcessProperties)obj[0]; var jObject = (JObject)obj[1]; var tenantId = (Guid)obj[2]; var userObj = jObject.Children().FirstOrDefault(t => t.Path.ToLower().Equals("user")); var details = userObj.First().ToObject <JObject> (); var userEntity = EntityMapper <VPC.Entities.EntityCore.Metadata.User> .MapperJObject(details); var tenantCode = _queryManager.GetSpecificIdByQuery(tenantId, "Tenant", tenantId, "Code"); details.Add(new JProperty("TenantCode", tenantCode)); var template = _iEntityResourceManager.GetWellKnownTemplate(tenantId, "Emailtemplate", "User", (int)ContextTypeEnum.Welcome, details); var returnVal = DataUtility.SaveEmail(tenantId, workFlowProcessProperties.UserId, template, userEntity.UserCredential.Username.Value, "NewUserCredential", InfoType.User); return(objWorkFlowProcessMessage); } catch (System.Exception ex) { _log.Error("User_Email_Create_Post having exception message" + ex.Message); objWorkFlowProcessMessage.Success = false; objWorkFlowProcessMessage.ErrorMessage = new ErrorMessage { Code = WorkFlowMessage.ApplicationError, Description = ex.Message }; return(objWorkFlowProcessMessage); } }
void IBatchTypes.OnExecute(dynamic obj) { VPC.Entities.BatchType.BatchType batchType = (VPC.Entities.BatchType.BatchType)obj[0]; var tenantId = Guid.Parse(batchType.TenantId.Value); try { var allBatchItems = _managerBatchItem.GetBatchItems(tenantId, new Guid(batchType.InternalId.Value), (batchType.ItemRetryCount.Value.Length > 0 ? (int?)Int32.Parse(batchType.ItemRetryCount.Value) : (int?)null)); foreach (var allBatchItem in allBatchItems) { try { var queryFilter1 = new List <QueryFilter> (); queryFilter1.Add(new QueryFilter { FieldName = "TenantId", Operator = "Equal", Value = tenantId.ToString() }); var queryContext1 = new QueryContext { Fields = "FirstName,LastName", Filters = queryFilter1, PageSize = 100, PageIndex = 1 }; DataTable templatedt = _queryManager.GetResult(tenantId, "user", queryContext1); _managerBatchItem.BatchItemUpdateStartTime(tenantId, allBatchItem.BatchItemId); var excelByte = GenerateExcel(tenantId, batchType, templatedt); //Update batch History _managerBatchItem.BatchHistoryCreate(tenantId, new BatchItemHistory { BatchHistoryId = Guid.NewGuid(), BatchItemId = allBatchItem.BatchItemId, EntityId = allBatchItem.EntityId, ReferenceId = allBatchItem.ReferenceId, Status = EmailEnum.Send, RunTime = allBatchItem.NextRunTime }); //Send email for attachment JObject userJObject = new JObject(); userJObject.Add(new JProperty("FirstName", "Ajay chouhan")); var template = _iEntityResourceManager.GetWellKnownTemplate(tenantId, "Emailtemplate", "User", (int)ContextTypeEnum.ExportUser, userJObject); var returnVal = DataUtility.SaveEmail(tenantId, Guid.Empty, template, "*****@*****.**", "ExportUser", InfoType.User); _managerBatchItem.BatchContentCreate(tenantId, new Entities.BatchType.BatchItemContent { BatchItemContentId = Guid.NewGuid(), BatchItemId = returnVal, Content = Convert.ToBase64String(excelByte), Name = "ExportUser", MimeType = "application/vnd.ms-excel", }); } catch (System.Exception ex) { _log.Error("An error has occurred while sending email", ex.Message); //Update batch History _managerBatchItem.BatchHistoryCreate(tenantId, new BatchItemHistory { BatchHistoryId = Guid.NewGuid(), BatchItemId = allBatchItem.BatchItemId, EntityId = allBatchItem.EntityId, ReferenceId = allBatchItem.ReferenceId, Status = EmailEnum.Fail, RunTime = allBatchItem.NextRunTime, FailedReason = ex.Message }); //Update Batch item status _managerBatchItem.BatchItemUpdate(tenantId, (batchType.ItemRetryCount.Value.Length > 0 ? (int?)Int32.Parse(batchType.ItemRetryCount.Value) : (int?)null), new BatchItem { BatchItemId = allBatchItem.BatchItemId, Status = EmailEnum.Fail, FailedReason = ex.Message }); //Update Email Status // _iEntityResourceManager.UpdateSpecificField(tenantId, "email", allBatchItem.ReferenceId, "Status", ((int)EmailEnum.Fail).ToString()); throw ex; } //Update Batch item status _managerBatchItem.BatchItemUpdateStatus(tenantId, new BatchItem { Status = EmailEnum.Send, BatchItemId = allBatchItem.BatchItemId }); } } catch (System.Exception ex) { _log.Error("ImportProductBatch failed", ex.Message); } }