Пример #1
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (TargetEmail.Length != 0)
            {
                hash ^= TargetEmail.GetHashCode();
            }
            if (TargetBattleTag.Length != 0)
            {
                hash ^= TargetBattleTag.GetHashCode();
            }
            if (InviterBattleTag.Length != 0)
            {
                hash ^= InviterBattleTag.GetHashCode();
            }
            if (InviterFullName.Length != 0)
            {
                hash ^= InviterFullName.GetHashCode();
            }
            if (InviteeDisplayName.Length != 0)
            {
                hash ^= InviteeDisplayName.GetHashCode();
            }
            hash ^= role_.GetHashCode();
            hash ^= previousRoleDeprecated_.GetHashCode();
            if (friendParams_ != null)
            {
                hash ^= FriendParams.GetHashCode();
            }
            return(hash);
        }
        protected override void Execute(IWorkflowActivityContext context)
        {
            this.EnsureNotNull(context, nameof(context));

            var activityContext = context.GetExecutionContext();

            var email   = TargetEmail.Get(activityContext);
            var applyTo = ApplyTo.Get(activityContext);

            if (email == null)
            {
                return;
            }

            if (applyTo.IsNullOrWhiteSpace())
            {
                return;
            }

            var role = Role.Get(activityContext);
            var team = Team.Get(activityContext);

            if (role == null && team == null)
            {
                return;
            }

            var roleUsers = GetRoleUsers(context, role);

            context.TracingService.Trace($"Found {roleUsers?.Count()} for role {role?.Id}");

            var teamUsers = GetTeamUsers(context, team);

            context.TracingService.Trace($"Found {teamUsers?.Count()} for team {team?.Id}");

            var users = roleUsers.Union(teamUsers).ToArray();

            if (users.Any())
            {
                UpdateEmail(
                    context,
                    email,
                    applyTo,
                    users);
            }
        }
Пример #3
0
        public int Add(TargetEmail targetEmail)
        {
            int id = 0;

            try
            {
                DataContext dataContext = new DataContext();
                var         entity      = dataContext.TargetEmails.Add(targetEmail);
                dataContext.SaveChanges();
                id = entity.Entity.Id;
            }
            catch (Exception e)
            {
                ClassLoger.Error("TargetEmailDal.AddAsync", e);
            }
            return(id);
        }
Пример #4
0
        public async Task <int> UpdateAsync(TargetEmail targetEmail)
        {
            int id = 0;

            try
            {
                DataContext dataContext = new DataContext();
                var         entity      = dataContext.TargetEmails.Update(targetEmail);
                await dataContext.SaveChangesAsync();

                id = entity.Entity.Id;
            }
            catch (Exception e)
            {
                ClassLoger.Error("TargetEmailDal.AddAsync", e);
            }
            return(id);
        }
Пример #5
0
        public async Task <bool> DelAsync(TargetEmail targetEmail)
        {
            bool flag = false;

            try
            {
                DataContext dataContext = new DataContext();
                dataContext.TargetEmails.Remove(targetEmail);
                await dataContext.SaveChangesAsync();

                flag = true;
            }
            catch (Exception e)
            {
                ClassLoger.Error("TargetEmailDal.DelAsync", e);
            }
            return(flag);
        }
Пример #6
0
        public async Task <IActionResult> uploadTagEmail()
        {
            JsonResult <PicMsg> result = new JsonResult <PicMsg>();

            result.code = 1;
            result.msg  = "";

            // 获取附带POST参数值
            for (var fileId = 0; fileId < Request.Form.Files.Count; fileId++)
            {
                var curFile = Request.Form.Files[fileId];
                if (curFile.Length < 1)
                {
                    continue;
                }
                var fileExt = Path.GetExtension(curFile.FileName);
                if (String.IsNullOrEmpty(fileExt) || fileExt != ".xlsx")
                {
                    result.msg = "上传文件中包含不支持文件格式!";
                    return(Json(result));
                }
                else
                {
                    // 存储文件名
                    string FileName = DateTime.Now.ToString("yyyyMMddhhmmssff") + CreateRandomCode(8) + fileExt;

                    // 存储路径(绝对路径)
                    string virtualPath = Path.Combine(hostingEnv.WebRootPath, "file");
                    if (!Directory.Exists(virtualPath))
                    {
                        Directory.CreateDirectory(virtualPath);
                    }
                    string filepath = Path.Combine(virtualPath, FileName);
                    try
                    {
                        using (FileStream fs = System.IO.File.Create(filepath))
                        {
                            await curFile.CopyToAsync(fs);

                            fs.Flush();
                        }
                        FileInfo file = new FileInfo(filepath);
                        using (ExcelPackage package = new ExcelPackage(file))
                        {
                            StringBuilder  sb        = new StringBuilder();
                            ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
                            int            rowCount  = worksheet.Dimension.Rows;
                            int            ColCount  = worksheet.Dimension.Columns;
                            if (rowCount < 2 || ColCount < 2)
                            {
                                result.msg = "Excel模板不正确";
                                return(Json(result));
                            }
                            StringBuilder            stringBuilder = new StringBuilder();
                            Dictionary <string, int> enteridDIc    = new Dictionary <string, int>();
                            TargetEmailBll           bll           = new TargetEmailBll();
                            for (int row = 2; row <= rowCount; row++)
                            {
                                TargetEmail targetEmail = new TargetEmail();
                                for (int col = 1; col <= ColCount; col++)
                                {
                                    string value = worksheet.Cells[row, col].Value.TryToString().Trim();
                                    switch (col)
                                    {
                                    case 1:
                                        targetEmail.Name = value;
                                        break;

                                    case 2:
                                        targetEmail.Email = value;
                                        break;
                                    }
                                }
                                bool flag = await bll.Exists(targetEmail.Name);

                                if (flag)
                                {
                                    stringBuilder.AppendLine(string.Format("{0}已存在", targetEmail.Name));
                                    continue;
                                }
                                int id = await bll.AddAsync(targetEmail);

                                if (id <= 0)
                                {
                                    stringBuilder.AppendLine(string.Format("邮箱【{0}】|添加失败", targetEmail.Name));
                                }
                            }

                            if (stringBuilder.Length > 0)
                            {
                                string errorfile     = DateTime.Now.ToString("yyyyMMddhhmmssff") + "error.txt";
                                string errorfilePath = Path.Combine(virtualPath, errorfile);
                                try
                                {
                                    FileStream   filestream = new FileStream(errorfilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
                                    StreamWriter writer     = new StreamWriter(filestream, System.Text.Encoding.UTF8);
                                    writer.BaseStream.Seek(0, SeekOrigin.End);
                                    await writer.WriteAsync(stringBuilder.ToString());

                                    writer.Flush();
                                    writer.Close();
                                    filestream.Close();
                                    result.data       = new PicMsg();
                                    result.data.src   = "/file/" + errorfile;
                                    result.data.title = errorfile;
                                }
                                catch (Exception ex)
                                {
                                    ClassLoger.Error("uploadTagEmail", ex);
                                }
                            }
                        }
                        result.code = 0;
                        result.msg  = "OK";
                    }
                    catch (Exception exception)
                    {
                        result.msg = "上传失败:" + exception.Message;
                    }
                }
            }

            return(Json(result));
        }
Пример #7
0
 public async Task <bool> DelAsync(TargetEmail targetEmail)
 {
     return(await TargetEmailDal.Ins.DelAsync(targetEmail));
 }
Пример #8
0
 public async Task <int> UpdateAsync(TargetEmail targetEmail)
 {
     return(await TargetEmailDal.Ins.UpdateAsync(targetEmail));
 }
Пример #9
0
 public int Add(TargetEmail targetEmail)
 {
     return(TargetEmailDal.Ins.Add(targetEmail));
 }
Пример #10
0
 public async Task <int> AddAsync(TargetEmail targetEmail)
 {
     return(await TargetEmailDal.Ins.AddAsync(targetEmail));
 }