示例#1
0
        public string ImportBooks(string filePath)
        {
            var msg  = new StringBuilder();
            var data = new DataTable();

            try
            {
                data = ExcelHelpers.ImportExcelToDataTable(filePath);
            }
            catch (Exception ex)
            {
                msg.AppendLine("导入失败!");
                msg.AppendLine("1.请确认模板是否正确,或者下载最新模板");
                msg.AppendLine("2.请确认Excel中没有空的行");
                msg.AppendLine("3.请勿对行进行增删操作");

                return(msg.ToString());
            }

            if (data.Rows.Count == 0)
            {
                return("无法导入,图书信息为空");
            }

            var addBookList  = new List <Book>();
            var bookTypeList = new List <BookType>();

            foreach (DataRow row in data.Rows)
            {
                var bookNumber = row["图书编号"].ToString();
                var name       = row["图书名称"].ToString();
                var type       = row["图书类型"].ToString();

                // validate requirement property
                //1. first to validate required property
                if (string.IsNullOrEmpty(bookNumber) ||
                    string.IsNullOrEmpty(name) ||
                    string.IsNullOrEmpty(type))
                {
                    msg.AppendLine($"必要字段缺失请检查图书编号,图书名称和图书类型.,行号:{data.Rows.IndexOf(row) + 1}");
                    continue;
                }

                // validate repetition book
                if (IsRepitionBook(bookNumber))
                {
                    msg.AppendLine($"该书已经存在,书名:{name},书籍编码:{bookNumber},行号:{data.Rows.IndexOf(row) + 1}");
                    continue;
                }

                // validate repetition book type
                if (!IsRepitionBookType(type))
                {
                    // add book type
                    var bookType = new BookType()
                    {
                        Id          = Guid.NewGuid(),
                        TypeName    = type,
                        CreatedTime = DateTime.Now
                    };

                    bookTypeList.Add(bookType);
                }

                // add book
                var book = new Book()
                {
                    Id          = Guid.NewGuid(),
                    BookNumber  = bookNumber,
                    CreatedTime = DateTime.Now,
                    Name        = name,
                    Type        = type
                };

                addBookList.Add(book);
            }

            using (var db = Heart.CreateBookDbContext())
            {
                db.Books.AddRange(addBookList);
                db.BookTypes.AddRange(bookTypeList);
                db.SaveChanges();
            }

            if (string.IsNullOrEmpty(msg.ToString()))
            {
                return("书籍导入成功");
            }
            return(msg.ToString());
        }
示例#2
0
        public string ImportUser(string filePath)
        {
            var msg  = new StringBuilder();
            var data = new DataTable();

            try
            {
                data = ExcelHelpers.ImportExcelToDataTable(filePath);
            }
            catch (Exception ex)
            {
                msg.AppendLine("导入失败!");
                msg.AppendLine("1.请确认模板是否正确,或者下载最新模板");
                msg.AppendLine("2.请确认Excel中没有空的行");
                msg.AppendLine("3.请勿对行进行增删操作");

                return(msg.ToString());
            }

            if (data.Rows.Count == 0)
            {
                return("无法导入,用户信息为空");
            }

            var addUserList = new List <User>();

            foreach (DataRow row in data.Rows)
            {
                //1. first to validate required property
                if (string.IsNullOrEmpty(row["姓名"].ToString()) ||
                    string.IsNullOrEmpty(row["电话"].ToString()) ||
                    string.IsNullOrEmpty(row["生日"].ToString()) ||
                    string.IsNullOrEmpty(row["过期时间"].ToString()) ||
                    string.IsNullOrEmpty(row["性别"].ToString()))
                {
                    msg.AppendLine($"必要字段缺失请检查姓名,电话,行号:{data.Rows.IndexOf(row) + 1}");
                    continue;
                }

                var birthday   = Convert.ToDateTime(row["生日"]);
                var comments   = row["备注"].ToString();
                var expireTime = Convert.ToDateTime(row["过期时间"]);
                var mobile     = row["电话"].ToString();
                var name       = row["姓名"].ToString();
                var sex        = row["性别"].ToString();

                if (IsRepetitionUser(name, mobile))
                {
                    msg.AppendLine($"该用户已存在,名字:{name},电话:{mobile},行号:{data.Rows.IndexOf(row) + 1}");
                    continue;
                }

                if (expireTime < DateTime.Now)
                {
                    msg.AppendLine($"无法导入,过期时间小于当前时间,名字:{name},电话:{mobile},行号:{data.Rows.IndexOf(row) + 1}");
                    continue;
                }

                User user = new User()
                {
                    Id          = Guid.NewGuid(),
                    Birthday    = birthday,
                    Comments    = comments,
                    CreatedTime = DateTime.Now,
                    ExpireTime  = expireTime,
                    Mobile      = mobile,
                    Name        = name,
                    Sex         = sex
                };

                addUserList.Add(user);
            }

            using (var db = Heart.CreateBookDbContext())
            {
                db.Users.AddRange(addUserList);
                db.SaveChanges();
            }

            if (string.IsNullOrEmpty(msg.ToString()))
            {
                return("用户导入成功");
            }

            return(msg.ToString());
        }