示例#1
0
        public object Post(Filter filter)
        {
            user user = (user)HttpContext.Current.Session[ECGlobalConstants.CurrentUserMarcker];

            if (user == null || user.id == 0)
            {
                return(null);
            }

            if (filter.AddToTeam.HasValue)
            {
                UserModel           userModel     = UserModel.inst;
                GlobalFunctions     glb           = new GlobalFunctions();
                IEmailAddressHelper m_EmailHelper = new EmailAddressHelper();

                userModel.AddToMediators(filter.AddToTeam.Value, filter.Report_id.Value);

                UserModel _um = new UserModel(filter.AddToTeam.Value);
                glb.UpdateReportLog(user.id, 5, filter.Report_id.Value, _um._user.first_nm + " " + _um._user.last_nm, null, "");

                if ((_um._user.email.Trim().Length > 0) && m_EmailHelper.IsValidEmail(_um._user.email.Trim()))
                {
                    List <string> to  = new List <string>();
                    List <string> cc  = new List <string>();
                    List <string> bcc = new List <string>();

                    to.Add(_um._user.email.Trim());
                    ReportModel _rm = new ReportModel(filter.Report_id.Value);

                    EC.Business.Actions.Email.EmailManagement em = new EC.Business.Actions.Email.EmailManagement();
                    EC.Business.Actions.Email.EmailBody       eb = new EC.Business.Actions.Email.EmailBody(1, 1, HttpContext.Current.Request.Url.AbsoluteUri.ToLower());
                    eb.MediatorAssigned(_um._user.first_nm, _um._user.last_nm, user.first_nm, user.last_nm, _rm._report.display_name);
                    string body = eb.Body;
                    em.Send(to, cc, LocalizationGetter.GetString("Email_Title_MediatorAssigned", false), body, true);
                }
            }

            if (filter.RemoveFromTeam.HasValue)
            {
                UserModel _um = new UserModel(filter.RemoveFromTeam.Value);

                int tasks_number = _um.UserTasks(1, filter.Report_id.Value, true).Count();
                if (tasks_number == 0)
                {
                    UserModel       userModel = UserModel.inst;
                    GlobalFunctions glb       = new GlobalFunctions();

                    userModel.RemoveMediator(filter.RemoveFromTeam.Value, filter.Report_id.Value);
                    glb.UpdateReportLog(user.id, 6, filter.Report_id.Value, _um._user.first_nm + " " + _um._user.last_nm, null, "");
                }
                else
                {
                    return(Get(filter.Report_id.Value, false, "User have a tasks"));
                }
            }
            if (filter.MakeCaseOwner.HasValue)
            {
                var list = DB.report_owner.Where(x => x.report_id == filter.Report_id).ToList();
                foreach (var item in list)
                {
                    item.status_id = item.user_id == filter.MakeCaseOwner.Value ? 2 : 1;
                }
                if (list.FirstOrDefault(x => x.user_id == filter.MakeCaseOwner.Value) == null)
                {
                    DB.report_owner.Add(new report_owner
                    {
                        created_on = DateTime.Now,
                        report_id  = filter.Report_id.Value,
                        user_id    = filter.MakeCaseOwner.Value,
                        status_id  = 2,
                    });
                }
                DB.SaveChanges();
            }

            return(Get(filter.Report_id.Value));
        }