Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }