Exemplo n.º 1
0
        /// <summary>
        /// </summary>
        /// <param name="files"></param>
        /// <param name="path"> </param>
        /// <returns></returns>
        public async Task <IList <FileModel> > SaveAsync(IEnumerable <HttpPostedFileBase> files, string path = null)
        {
            var fileList = new List <FileModel>();

            if (files == null)
            {
                return(fileList);
            }
            foreach (var file in files)
            {
                if (path == null)
                {
                    path = FileConst.ImagesWebPath;
                }
                var extension  = Path.GetExtension(file.FileName);
                var size       = 0;
                var name       = SequentialGuidGenerator.NewSequentialGuid() + extension;
                var pathToSave = Path.Combine(path, name);
                file.SaveAs(pathToSave);
                var fileSaved = new FileModel()
                {
                    Id        = SequentialGuidGenerator.NewSequentialGuid(),
                    Name      = name,
                    Type      = FileConst.FileType,
                    Extension = extension,
                    Size      = size,
                    Path      = path
                };
                fileList.Add(fileSaved);
            }
            return(fileList);
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="file"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        public async Task <FileModel> SaveFromUploaderAsync(HttpPostedFileBase file, string path = null)
        {
            // Check
            if (file == null)
            {
                return(null);
            }

            // Process
            var extension = Path.GetExtension(file.FileName);
            var id        = SequentialGuidGenerator.NewSequentialGuid();
            var name      = id + extension;
            var webpath   = path != null?System.Web.HttpContext.Current.Server.MapPath(FileConst.UploadPath.PlusWord(path)) : System.Web.HttpContext.Current.Server.MapPath(FileConst.UploadPath);

            var web = await ConvertToByteArrayAsync(file);

            // var waterMarked = ImageManager.AddWaterMark(thumb, "Arezoo");
            var result = await CreateFileAsync(web, name, webpath);

            var thumbPath = path != null?System.Web.HttpContext.Current.Server.MapPath(FileConst.ThumbPath.PlusWord(path)) : System.Web.HttpContext.Current.Server.MapPath(FileConst.ThumbPath);

            var thumbFile = await ConvertToByteArrayAsync(file);

            var resized = thumbFile.ResizeImageFile(100, 100);


            var thumbResult = await CreateFileAsync(resized, name, thumbPath);

            //  Result
            return(thumbResult != null ? thumbResult : null);
        }
Exemplo n.º 3
0
 public Group()
 {
     GroupRoles      = new List <GroupRole>();
     GroupChangeLogs = new List <GroupChangeLog>();
     Users           = new List <User>();
     Id = SequentialGuidGenerator.NewSequentialGuid();
 }
Exemplo n.º 4
0
 public override object ToDbValue(Type fieldType, object value)
 {
     if (value is Guid && value.Equals(Guid.Empty))
     {
         var newGuid = SequentialGuidGenerator.NewSequentialGuid(SequentialGuidType.SequentialAtEnd);
         return(newGuid);
     }
     return(base.ToDbValue(fieldType, value));
 }
Exemplo n.º 5
0
        public void TestMethod1()
        {
            SequentialGuidGenerator generatror = SequentialGuidGenerator.Instance;
            int    i    = 0;
            Random rand = new Random(new Guid().GetHashCode());

            while (i < 10)
            {
                var r = rand.Next(3);
                Console.WriteLine(r);
                Console.WriteLine(generatror.NewSequentialGuid());
                Thread.Sleep(r);
                i++;
            }
        }
Exemplo n.º 6
0
        private void UpdateAuditFields(Guid auditUserId)
        {
            var auditUserIp    = HttpContext.Current.Request.GetIp();
            var auditUserAgent = HttpContext.Current.Request.GetBrowser();
            var auditDate      = DateTime.Now;

            foreach (var entry in this.ChangeTracker.Entries <BaseEntity>())
            {
                // Note: You must add a reference to assembly : System.Data.Entity
                switch (entry.State)
                {
                case EntityState.Added:
                    entry.Entity.Id            = SequentialGuidGenerator.NewSequentialGuid();
                    entry.Entity.CreatedOn     = auditDate;
                    entry.Entity.CreatedById   = auditUserId;
                    entry.Entity.ModifiedOn    = auditDate;
                    entry.Entity.Action        = AuditAction.Create;
                    entry.Entity.ModifiedById  = auditUserId;
                    entry.Entity.CreatorIp     = auditUserIp;
                    entry.Entity.ModifierIp    = auditUserIp;
                    entry.Entity.CreatorAgent  = auditUserAgent;
                    entry.Entity.ModifierAgent = auditUserAgent;
                    entry.Entity.Version       = 1;
                    break;

                case EntityState.Modified:
                    entry.Entity.ModifiedOn    = auditDate;
                    entry.Entity.ModifiedById  = auditUserId;
                    entry.Entity.ModifierIp    = auditUserIp;
                    entry.Entity.ModifierAgent = auditUserAgent;
                    entry.Entity.Version       = ++entry.Entity.Version;
                    entry.Entity.Action        = entry.Entity.IsDeleted ? AuditAction.SoftDelete : AuditAction.Update;
                    break;

                case EntityState.Detached:
                    break;

                case EntityState.Unchanged:
                    break;

                case EntityState.Deleted:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
        }
Exemplo n.º 7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="entry"></param>
        private static void UpdateFieldsForAdded(DbEntityEntry <BaseEntity> entry)
        {
            //var auditUserIp = HttpContext.Current.Request.GetIp();
            //var auditUserAgent = HttpContext.Current.Request.GetBrowser();
            var auditDate = DateTime.Now;

            if (entry.Entity.Id == Guid.Empty)
            {
                entry.Entity.Id = SequentialGuidGenerator.NewSequentialGuid();
            }
            // entry.Entity.CreatedOn = auditDate;
            // entry.Entity.ModifiedOn = auditDate;
            //entry.Entity.Audit = AuditType.Create;
            //entry.Entity.CreatorIp = auditUserIp;
            //entry.Entity.ModifierIp = auditUserIp;
            //entry.Entity.CreatorAgent = auditUserAgent;
            //entry.Entity.ModifierAgent = auditUserAgent;
            //entry.Entity.Version = 1;
        }
Exemplo n.º 8
0
        public async Task <IList <FileModel> > SaveAttachmentAsync(IEnumerable <HttpPostedFileBase> files, string path = null)
        {
            var fileList = new List <FileModel>();

            if (files == null)
            {
                return(fileList);
            }
            foreach (var file in files)
            {
                var validationFormat = await _attachmentManager.AttachmentValidator.GetFormatAsync(file);

                var validationSize = await _attachmentManager.AttachmentValidator.GetSizeAsync(file);

                if (validationFormat != null)
                {
                    throw new ArgumentNullException(nameof(validationFormat));
                }
                if (validationSize != null)
                {
                    throw new ArgumentNullException(nameof(validationSize));
                }
                if (path == null)
                {
                    path = FileConst.AttachmentPath;
                }
                var fileSaved = new FileModel
                {
                    Id        = SequentialGuidGenerator.NewSequentialGuid(),
                    Name      = SequentialGuidGenerator.NewSequentialGuid() + Path.GetExtension(file.FileName),
                    Type      = FileConst.FileType,
                    Extension = Path.GetExtension(file.FileName),
                    Size      = file.ContentLength,
                    Path      = path
                };
                var byteFile = await ConvertToByteArrayAsync(file);
                await CreateFileAsync(byteFile, fileSaved.Name, path);

                fileList.Add(fileSaved);
            }
            return(fileList);
        }
Exemplo n.º 9
0
        public ActionResult EnviarMailRecuperarPassword(ForgotPasswordViewModel model)
        {
            var email = model.Email;

            if (string.IsNullOrWhiteSpace(email))
            {
                ViewBag.Error = "Por favor complete el email";
                return(View("ForgotPassword", model));
            }
            ApplicationDbContext          db = new ApplicationDbContext();
            UserManager <ApplicationUser> um = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext()));
            var user = um.FindByEmail(email);

            if (user != null)
            {
                try
                {
                    user.Token = SequentialGuidGenerator.NewSequentialGuid(SequentialGuidType.SequentialAtEnd);
                    user.TokenFechaVencimiento = DateTime.Now.AddDays(1);
                    um.Update(user);
                    dynamic em = new Email("EnviarMailRecuperarPassWord");
                    em.To     = email;
                    em.Nombre = user.Name;
                    em.Link   = WebConfigurationManager.AppSettings["Core"] + WebConfigurationManager.AppSettings["RecuperarPasswordLink"].Replace("[[token]]", user.Token.ToString()).Replace("[[usuarioId]]", user.Id.ToString()).Replace("&amp;", "&");
                    em.Send();
                }
                catch (Exception ex)
                {
                    ViewBag.Error = "Hubo un error al enviar el email";
                    return(View("ForgotPassword", model));
                }
            }
            else
            {
                ViewBag.Error = "El mail no se corresponde con ningun usuario";
                return(View("ForgotPassword", model));
            }

            ViewBag.Success = true;
            return(View("ForgotPassword", model));
        }
Exemplo n.º 10
0
        public void MainTest()
        {
            Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffffff"));
            SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0, 0);

            for (int i = 0; i < 1000; i++)
            {
                Trace.WriteLine(string.Format("{0}         {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffffff"), idWorker.NextId()));
            }

            Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffffff"));

            //SequentialGuidGenerator,效率低于SnowflakeIdWorker
            for (int i = 0; i < 1000; i++)
            {
                var id = SequentialGuidGenerator.NewSequentialGuid(SequentialGuidType.SequentialAsString);
                Trace.WriteLine(string.Format("{0}          {1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffffff"), id));
            }

            Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffffff"));
        }
        public static void SetAuditableEntiTypeopertyValues(
            this ChangeTracker changeTracker,
            IHttpContextAccessor httpContextAccessor, Guid?ionicUserId = null)
        {
            var httpContext = httpContextAccessor?.HttpContext;
            var userAgent   = httpContext?.Request?.Headers["User-Agent"].ToString();
            var userIp      = httpContext?.Connection?.RemoteIpAddress?.ToString();

            if (string.IsNullOrEmpty(userIp))
            {
                userIp = "::1";
            }
            var now    = DateTimeOffset.UtcNow.IranStandardTimeNow();
            var userId = ionicUserId ?? GetUserId(httpContext);

            var modifiedEntries = changeTracker.Entries()
                                  .Where(x => x.State == EntityState.Modified);

            foreach (var modifiedEntry in modifiedEntries)
            {
                SetEntityEntryValue <DateTimeOffset?>(modifiedEntry, ModifiedDateTimeOn, now);
                SetEntityEntryValue <string>(modifiedEntry, ModifiedByIp, userIp);
                SetEntityEntryValue <Guid?>(modifiedEntry, ModifiedByUserId, userId);
            }

            var addedEntries = changeTracker.Entries()
                               .Where(x => x.State == EntityState.Added);

            foreach (var addedEntry in addedEntries)
            {
                SetEntityEntryValue <DateTimeOffset?>(addedEntry, CreatedDateTimeOn, now);
                SetEntityEntryValue <string>(addedEntry, CreatedByIp, userIp);
                SetEntityEntryValue <string>(addedEntry, CreatorIp, userIp);
                SetEntityEntryValue <string>(addedEntry, CreatorIdentityIp, userIp);
                SetEntityEntryValue <Guid?>(addedEntry, CreatedByUserId, userId);
                SetEntityEntryValue <Guid?>(addedEntry, CreatorIdentityId, userId);
                SetEntityEntryValue <Guid?>(addedEntry, CreatorId, userId);
                SetEntityEntryValue <Guid>(addedEntry, Id, SequentialGuidGenerator.NewSequentialGuid());
            }
        }
Exemplo n.º 12
0
        public ActionResult RecuperarPassword(string usuarioid = null, Guid?token = null)
        {
            if (User.Identity.IsAuthenticated && usuarioid == null && token == null)
            {
                var user = UserManager.FindById(User.Identity.GetUserId());
                user.Token = SequentialGuidGenerator.NewSequentialGuid(SequentialGuidType.SequentialAtEnd);
                user.TokenFechaVencimiento = DateTime.Now.AddDays(5);
                UserManager.Update(user);

                var model = new RecuperarPasswordViewModel();
                model.Token     = user.Token;
                model.UsuarioId = user.Id;
                return(View(model));
            }
            else
            {
                var model = new RecuperarPasswordViewModel();
                model.Token     = token.Value;
                model.UsuarioId = usuarioid;
                return(View(model));
            }
        }
Exemplo n.º 13
0
        public JsonResult EnviarMailRecuperarPassWord()
        {
            string mail = System.Web.HttpContext.Current.Request.Form["mail"];
            // string mail = Request.QueryString["mail"].ToString();
            UserManager <ApplicationUser> um = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext()));
            var user = um.FindByEmail(mail);

            //var repositorio = new Repositorio<Supervisor>(db);
            //var user = repositorio.TraerTodos().SingleOrDefault(a => a.Usuario.UserName == mail);
            if (user != null)
            {
                ViewBag.To      = mail;
                ViewBag.Subject = "Recuperar Usuario";

                string link = WebConfigurationManager.AppSettings["Core"] + WebConfigurationManager.AppSettings["RecuperarPasswordLink"];

                var newToken = SequentialGuidGenerator.NewSequentialGuid(SequentialGuidType.SequentialAtEnd);
                user.TokenFechaVencimiento = DateTime.Today.AddDays(7);
                user.Token = newToken;
                um.Update(user);
                try
                {
                    dynamic email = new Email("EnviarMailRecuperarPassWord");
                    email.Link    = link.Replace("[[token]]", newToken.ToString().ToUpper()).Replace("[[usuarioId]]", user.Id);
                    email.Subject = "Recuperar Usuario";
                    email.To      = mail;
                    email.Send();
                }
                catch (Exception ex)
                {
                    return(Json("Error: no se ha podido enviar el mail con los pasos a seguir. Intente más tarde.", JsonRequestBehavior.AllowGet));
                }
                return(Json("Se ha enviado un email a su casilla de email con los pasos a seguir", JsonRequestBehavior.AllowGet));
            }

            return(null);
        }
Exemplo n.º 14
0
        public string Generate(DbType dbType)
        {
            Guid guid;

            switch (dbType)
            {
            case DbType.SQLServer:
                guid = SequentialGuidGenerator.NewSequentialGuid(SequentialGuidType.SequentialAtEnd);
                break;

            default:
            case DbType.SQLite:
            case DbType.MySQL:
            case DbType.PostgreSQL:
                guid = SequentialGuidGenerator.NewSequentialGuid(SequentialGuidType.SequentialAsString);
                break;

            case DbType.Oracle:
                guid = SequentialGuidGenerator.NewSequentialGuid(SequentialGuidType.SequentialAsBinary);
                break;
            }

            return(guid.ToString("N"));
        }
Exemplo n.º 15
0
 /// <summary>
 /// create one instance of <see cref="Notification"/>
 /// </summary>
 public Notification()
 {
     Id         = SequentialGuidGenerator.NewSequentialGuid();
     ReceivedOn = DateTime.Now;
 }
Exemplo n.º 16
0
 /// <summary>
 /// create one instance of <see cref="Attachment"/>
 /// </summary>
 protected Attachment()
 {
     Id         = SequentialGuidGenerator.NewSequentialGuid();
     AttachedOn = DateTime.Now;
 }
Exemplo n.º 17
0
 /// <summary>
 /// create one instance of <see cref="Conversation"/>
 /// </summary>
 public Conversation()
 {
     Id     = SequentialGuidGenerator.NewSequentialGuid();
     SentOn = DateTime.Now;
 }
Exemplo n.º 18
0
 /// <summary>
 /// 生成有序的唯一ID
 /// </summary>
 /// <param name="sequentialGuidType">有序GUID类型</param>
 /// <returns></returns>
 public static Guid GenerateSequentialGuid(
     SequentialGuidType sequentialGuidType = SequentialGuidType.SequentialAsString)
 {
     return(SequentialGuidGenerator.NewSequentialGuid(sequentialGuidType));
 }
Exemplo n.º 19
0
 /// <summary>
 /// create one instance of <see cref="Message"/>
 /// </summary>
 public Message()
 {
     Id     = SequentialGuidGenerator.NewSequentialGuid();
     SentOn = DateTime.Now;
 }
Exemplo n.º 20
0
        /// <summary>
        /// create one instance of <see cref="VideoGalleryFile"/>
        /// </summary>

        public VideoGalleryFile()
        {
            VideoGalleryFileId = SequentialGuidGenerator.NewSequentialGuid();
        }
Exemplo n.º 21
0
 /// <summary>
 /// create one instance of <see cref="BlogDraft"/>
 /// </summary>
 public BlogDraft()
 {
     Id = SequentialGuidGenerator.NewSequentialGuid();
 }
Exemplo n.º 22
0
 /// <summary>
 ///     create one instance of <see cref="Contact" />
 /// </summary>
 public Contact()
 {
     ContactId = SequentialGuidGenerator.NewSequentialGuid();
 }
Exemplo n.º 23
0
 /// <summary>
 /// create one instance of <see cref="Favorite"/>
 /// </summary>
 public Favorite()
 {
     Id        = SequentialGuidGenerator.NewSequentialGuid();
     CreatedOn = DateTime.Now;
 }
Exemplo n.º 24
0
        /// <summary>
        /// </summary>
        /// <param name="auditUserId"></param>
        private void UpdateAuditFields(Guid auditUserId)
        {
            var auditUserIp    = HttpContext.Current.Request.GetIp();
            var auditUserAgent = HttpContext.Current.Request.GetBrowser();
            var auditDate      = DateTime.Now;

            foreach (var entry in ChangeTracker.Entries <BaseEntity>())
            {
                // Note: You must add a reference to assembly : System.Data.Entity
                switch (entry.State)
                {
                case EntityState.Added:
                    if (entry.Entity.Id == Guid.Empty)
                    {
                        entry.Entity.Id = SequentialGuidGenerator.NewSequentialGuid();
                    }
                    //entry.Entity.CreatedById = auditUserId;
                    //entry.Entity.ModifiedById = auditUserId;
                    UpdateFieldsForAdded(entry);
                    break;

                case EntityState.Modified:
                    //entry.Entity.ModifiedById = auditUserId;
                    UpdateFieldsForModified(entry);
                    break;

                case EntityState.Detached:
                    break;

                case EntityState.Unchanged:
                    break;

                case EntityState.Deleted:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            foreach (var entry in ChangeTracker.Entries <Role>())
            {
                // Note: You must add a reference to assembly : System.Data.Entity
                switch (entry.State)
                {
                case EntityState.Added:
                    if (entry.Entity.Id == Guid.Empty)
                    {
                        entry.Entity.Id = SequentialGuidGenerator.NewSequentialGuid();
                    }
                    entry.Entity.CreatedOn   = auditDate;
                    entry.Entity.CreatedById = auditUserId;
                    entry.Entity.ModifiedOn  = auditDate;
                    entry.Entity.Audit       = AuditType.Create;
                    // entry.Entity.ModifiedById = auditUserId;
                    entry.Entity.CreatorIp     = auditUserIp;
                    entry.Entity.ModifierIp    = auditUserIp;
                    entry.Entity.CreatorAgent  = auditUserAgent;
                    entry.Entity.ModifierAgent = auditUserAgent;
                    entry.Entity.Version       = 1;
                    break;

                case EntityState.Modified:
                    entry.Entity.ModifiedOn = auditDate;
                    // entry.Entity.ModifiedById = auditUserId;
                    entry.Entity.ModifierIp    = auditUserIp;
                    entry.Entity.ModifierAgent = auditUserAgent;
                    entry.Entity.Version       = ++entry.Entity.Version;
                    entry.Entity.Audit         = entry.Entity.IsDelete.GetValueOrDefault()
                            ? AuditType.SoftDelete
                            : AuditType.Edit;
                    break;

                case EntityState.Detached:
                    break;

                case EntityState.Unchanged:
                    break;

                case EntityState.Deleted:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
        }
Exemplo n.º 25
0
 /// <summary>
 /// Create One Instance Of <see cref="AuditLog"/>
 /// </summary>
 public AuditLog()
 {
     Id         = SequentialGuidGenerator.NewSequentialGuid();
     OperatedOn = DateTime.Now;
 }
Exemplo n.º 26
0
 public Equipment()
 {
     Id       = SequentialGuidGenerator.NewSequentialGuid();
     AssignOn = DateTime.Now;
 }
Exemplo n.º 27
0
        /// <summary>
        /// create one instance of <see cref="ProfileFile"/>
        /// </summary>

        public ProfileFile()
        {
            ProfileFileId = SequentialGuidGenerator.NewSequentialGuid();
        }
Exemplo n.º 28
0
        /// <summary>
        /// create one instance of <see cref="ArticleFile"/>
        /// </summary>

        public ArticleFile()
        {
            ArticleFileId = SequentialGuidGenerator.NewSequentialGuid();
        }
Exemplo n.º 29
0
 /// <summary>
 /// 获取有序的唯一ID。
 /// </summary>
 /// <returns></returns>
 public static Guid GenerateComb(SequentialGuidType sequentialGuidType = SequentialGuidType.SequentialAtEnd)
 {
     return(SequentialGuidGenerator.NewSequentialGuid(sequentialGuidType));
 }
Exemplo n.º 30
0
        /// <summary>
        /// create one instance of <see cref="PortfolioFile"/>
        /// </summary>

        public PortfolioFile()
        {
            PortfolioFileId = SequentialGuidGenerator.NewSequentialGuid();
        }