Example #1
0
        public static void RequestAccessToAuditManager(string comment, bool toIncludeCurrentUser)
        {
            //Task task = new Task(() => AmUtil.SendMail_RequestAccessToAuditManager(comment, toIncludeCurrentUser));
            //task.Start();

            AmUtil.SendMail_RequestAccessToAuditManager(comment, toIncludeCurrentUser);

            //AmUtil.SendMail_RequestAccessToAuditManager(comment);
        }
Example #2
0
        public static void RequestAccess(string engNum, WsUserType wsUserType, string emailUsers, string comment = null)
        {
            var dtNow = DateTime.Now;

            var wsModel    = Workspace.GetEngByEngNum(engNum, WsLoadType.Groups, true).FirstOrDefault();
            var recepients = Workspace.GetEmailRecepientsForEng(wsModel, EmailRecepientType.ADMIN, true);

            emailUsers = emailUsers.ToUpper();
            var sp_emailUsers = emailUsers.Split(',').ToList();

            var filterRecepients = recepients.Where(x => (sp_emailUsers.Contains((x.Item2 + "@kpmg.com").ToUpper()) || (x.Item2.Equals(AuditManager.Common.AmUtil.GetCurrentUser, StringComparison.OrdinalIgnoreCase)))).ToList();

            var mailText       = AmUtil.SendMail_RequestAccess(WsActivityType.Workspace_RequestAccess.ToString(), wsModel.WsProfile.EngNum, wsModel.Name, filterRecepients, wsUserType.ToString(), comment);
            var recepientArray = string.Join(",", filterRecepients.Select(x => x.Item2).ToList());

            //INSERT INTO [AuditManager].[dbo].[WsActivity] VALUES (25, 'Workspace')
            //INSERT INTO [AuditManager].[dbo].[WsActivity] VALUES (26, 'Workspace_RequestAccess')

            using (var db = new AmDbContext())
            {
                var wsActivityHistory = db.WsActivityHistory.Add(
                    new WsActivityHistory
                {
                    EngNum              = engNum,
                    UserId              = AmUtil.GetCurrentUser,
                    WsActivityTypeId    = WsActivityType.Workspace,
                    WsSubActivityTypeId = WsActivityType.Workspace_RequestAccess,
                    Comment             = comment,
                    WsActivityInfo      = wsUserType.ToString(),
                    DateCreated         = dtNow
                }
                    );

                db.SaveChanges();

                var wsMail = db.WsMail.Add(new WsMail
                {
                    WsActivityHistoryId = wsActivityHistory.WsActivityHistoryId,
                    WsMailStatusTypeId  = WsMailStatusType.Success,
                    MailText            = mailText,
                    RecepientArray      = recepientArray
                });

                db.SaveChanges();
            }
        }
        public void OnAuthentication(WebMvc.Filters.AuthenticationContext filterContext)
        {
            if (AuditManager.Common.ConfigUtility.IsUnderMaintenance() && !AmUtil.IsMaintenanceUser())
            {
                return;
            }

            if (filterContext.ActionDescriptor.ControllerDescriptor.ControllerName.Equals("Elmah", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            //filterContext.Principal.Identity.Name
            var usr    = filterContext.Principal.Identity.Name.ToUserIdFromDnsName();
            var wsUser = AuditManager.Rep.AmUtility.GetWsUser(usr, Model.ImDbType.Active);

            if (wsUser == null)
            {
                AuditManager.Rep.WsCreate.RequestAccessToAuditManager(string.Format("Auto Mail - User \"{0}\" doesn't exist in WorkSite table.", usr), false);
                filterContext.Result = new ViewResult {
                    ViewName = "Unauthorized"
                };
            }
        }
Example #4
0
        public static List <WsModel> UpdateWs(WsUpdateModel wsUpdateModel, UpdateProfileFrom updateProfileFrom)
        {
            var wsModelIn = wsUpdateModel.WsModel;

            IManWorkspace imWs = null;

            //--V469-583-S
            var wsModel = Workspace.GetWs(wsModelIn.ObjectID, out imWs, WsLoadType.ALL, isAdmin: true);

            //var wsModel = Workspace.GetWs_Admin(wsModelIn.ObjectID, out imWs, WsLoadType.ALL);
            //--V469-583-E

            if (wsModelIn.WsProfile.IsUnderPreservation != wsModel.WsProfile.IsUnderPreservation)
            {
                if (wsModelIn.WsProfile.IsUnderPreservation)
                {
                    if (wsModel.WsProfile.Status.StartsWith("closed", StringComparison.OrdinalIgnoreCase))
                    {
                        imWs.SetAttributeByID(imProfileAttributeID.imProfileCustom11, "CLOSED - UNDER PRESERVATION");
                    }
                    else
                    {
                        imWs.SetAttributeByID(imProfileAttributeID.imProfileCustom11, "OPEN - UNDER PRESERVATION");
                    }
                }
                else
                {
                    imWs.SetAttributeByID(imProfileAttributeID.imProfileCustom11, wsModel.WsProfile.Status.Replace(" - UNDER PRESERVATION", ""));
                }

                var wsGLog = new WsGenericLog();
                wsGLog.ActionBy          = AmUtil.GetCurrentUser;
                wsGLog.Id                = null;
                wsGLog.Name              = null;
                wsGLog.ActionInfo        = wsModelIn.WsProfile.IsUnderPreservation ? "ON" : "OFF";
                wsGLog.AdditionalInfo    = null;
                wsGLog.Comment           = wsUpdateModel.PreservationComment;
                wsGLog.OldValue          = wsModel.WsProfile.IsUnderPreservation.ToString();
                wsGLog.NewValue          = wsModelIn.WsProfile.IsUnderPreservation.ToString();
                wsGLog.WsLogActivityType = WsLogActivityType.Preservation;

                WsUtility.CreateWsLog(wsModelIn.ObjectID, wsGLog);

                //Mail
                var wsAdmin    = WsUtility.GetEmailRecepients(wsModel, EmailRecepientType.ADMIN);
                var recepients = WsUtility.GetEmailRecepients(wsModel, EmailRecepientType.MEMBERS);

                var mailBody = AmUtil.SendMail_Preservation(wsModelIn.WsProfile.IsUnderPreservation ?
                                                            WsActivityType.WSPROFILE_PRESERVATION_ON.ToString() : WsActivityType.WSPROFILE_PRESERVATION_OFF.ToString(),
                                                            wsModel.WsProfile.EngNum, wsModel.Name, wsModel.WsProfile.ClientDesc, recepients, wsAdmin,
                                                            wsModelIn.WsProfile.IsUnderPreservation ? "Workspace Flagged for Preservation" : "Workspace Preservation Removed");

                wsGLog.WsLogActivityType = wsModelIn.WsProfile.IsUnderPreservation ?
                                           WsLogActivityType.PreservationONEmail : WsLogActivityType.PreservationOFFEmail;
                WsUtility.CreateEmailLog(wsModelIn.ObjectID, mailBody, wsGLog);

                //
            }

            if (wsModelIn.WsProfile.EventTrgDate != wsModel.WsProfile.EventTrgDate)
            {
                imWs.SetAttributeByID(imProfileAttributeID.imProfileCustom23, wsModelIn.WsProfile.EventTrgDate);

                var wsGLog = new WsGenericLog();
                wsGLog.ActionBy          = AmUtil.GetCurrentUser;
                wsGLog.Id                = null;
                wsGLog.Name              = null;
                wsGLog.ActionInfo        = null;
                wsGLog.AdditionalInfo    = null;
                wsGLog.Comment           = wsUpdateModel.PreservationComment;
                wsGLog.OldValue          = wsModel.WsProfile.EventTrgDate.ToString();
                wsGLog.NewValue          = wsModelIn.WsProfile.EventTrgDate.ToString();
                wsGLog.WsLogActivityType = WsLogActivityType.EventTrgDate;

                WsUtility.CreateWsLog(wsModelIn.ObjectID, wsGLog);
            }

            if (wsModelIn.WsProfile.IsKDrive != wsModel.WsProfile.IsKDrive)
            {
                imWs.SetAttributeByID(imProfileAttributeID.imProfileCustom26, wsModelIn.WsProfile.IsKDrive);

                var wsGLog = new WsGenericLog();
                wsGLog.ActionBy          = AmUtil.GetCurrentUser;
                wsGLog.Id                = null;
                wsGLog.Name              = null;
                wsGLog.ActionInfo        = null;
                wsGLog.AdditionalInfo    = null;
                wsGLog.Comment           = wsUpdateModel.PreservationComment;
                wsGLog.OldValue          = wsModel.WsProfile.IsKDrive.ToString();
                wsGLog.NewValue          = wsModelIn.WsProfile.IsKDrive.ToString();
                wsGLog.WsLogActivityType = WsLogActivityType.ChangeStorageLocation;

                WsUtility.CreateWsLog(wsModelIn.ObjectID, wsGLog);
            }

            if (wsModelIn.WsProfile.IsServer2 != wsModel.WsProfile.IsServer2)
            {
                imWs.SetAttributeByID(imProfileAttributeID.imProfileCustom12, wsModelIn.WsProfile.IsServer2.ToString());

                var wsGLog = new WsGenericLog();
                wsGLog.ActionBy          = AmUtil.GetCurrentUser;
                wsGLog.Id                = null;
                wsGLog.Name              = null;
                wsGLog.ActionInfo        = null;
                wsGLog.AdditionalInfo    = null;
                wsGLog.Comment           = wsUpdateModel.PreservationComment;
                wsGLog.OldValue          = wsModel.WsProfile.IsServer2.ToString();
                wsGLog.NewValue          = wsModelIn.WsProfile.IsServer2.ToString();
                wsGLog.WsLogActivityType = WsLogActivityType.Server2;

                WsUtility.CreateWsLog(wsModelIn.ObjectID, wsGLog);
            }

            if (wsModelIn.WsProfile.RetPolicy != wsModel.WsProfile.RetPolicy)
            {
                imWs.SetAttributeByID(imProfileAttributeID.imProfileCustom7, wsModelIn.WsProfile.RetPolicy.ToString());

                var wsGLog = new WsGenericLog();
                wsGLog.ActionBy          = AmUtil.GetCurrentUser;
                wsGLog.Id                = null;
                wsGLog.Name              = null;
                wsGLog.ActionInfo        = null;
                wsGLog.AdditionalInfo    = null;
                wsGLog.Comment           = wsUpdateModel.RetentionComment;
                wsGLog.OldValue          = wsModel.WsProfile.RetPolicy.ToString();
                wsGLog.NewValue          = wsModelIn.WsProfile.RetPolicy.ToString();
                wsGLog.WsLogActivityType = WsLogActivityType.RetPolicy;

                WsUtility.CreateWsLog(wsModelIn.ObjectID, wsGLog);
            }

            //wsNew.Profile.SetAttributeByID(imProfileAttributeID.imProfileCustom7, "7YEARS");

            imWs.Update();

            WsUtility.UpdateWsProfile(wsUpdateModel, updateProfileFrom);

            return(IM.Mgr.Workspace.GetWs(wsModelIn.ObjectID));
        }
Example #5
0
        public static void InitiateClosure(InitiateClosureWsModel initiateClosureWsModel)
        {
            var wsModelIn     = initiateClosureWsModel.WsModel;
            var largeRetFiles = initiateClosureWsModel.LargeRetFiles;
            var comment       = initiateClosureWsModel.Comment;

            IManWorkspace imWs = null;

            var wsModel = Workspace.GetWs(wsModelIn.ObjectID, out imWs, WsLoadType.ALL);

            //List<WsFile> wsFiles = new List<WsFile>();

            //WsFldr wsFldr = new WsFldr();
            //wsFldr.WsFldrs = wsModelIn.WsFldrs;

            //WsUtility.GetWsFiles(item =>
            //{
            //    if (item.WsFiles != null && item.WsFiles.Count > 0)
            //    {
            //        foreach (var wsFile in item.WsFiles)
            //        {
            //            if (wsFile.IsIncludedInClosure)
            //                wsFiles.Add(wsFile);
            //        }
            //    }
            //}, wsFldr);

            List <WsFile> wsFiles = GetAllFilesFromWs(wsModelIn);

            wsFiles = wsFiles.Where(x => x.IsIncludedInClosure).ToList();

            var wsGLog = new WsGenericLog();

            wsGLog.ActionBy          = AmUtil.GetCurrentUser;
            wsGLog.Id                = null;
            wsGLog.Name              = null;
            wsGLog.ActionInfo        = null;
            wsGLog.AdditionalInfo    = null;
            wsGLog.Comment           = comment;
            wsGLog.OldValue          = null;
            wsGLog.NewValue          = null;
            wsGLog.WsLogActivityType = WsLogActivityType.Closure;

            var sbFileInfo = new StringBuilder();

            sbFileInfo.AppendLine("Event trigger Date for this closure: " + wsModelIn.WsProfile.EventTrgDate);
            sbFileInfo.AppendLine();
            sbFileInfo.AppendLine(AmUtil.GetLineSeperator);
            sbFileInfo.AppendLine();
            var sbClosureMailInfo = new StringBuilder();

            foreach (var item in wsFiles)
            {
                IManDocument imDoc = WsUtility.GetObjectByID <IManDocument>(item.ObjectID, isAdmin: true);
                if (WsValidation.ValidateDoc(imDoc, imDocumentOperation.imFreezeDocumentOp) == WsDocDelStatusType.Success)
                {
                    var wsFile = Workspace.GetWsFile(imDoc);

                    //if (wsFile.IsLocked) { }

                    //if (wsFile.IsCheckedOut)
                    //{
                    //    CheckInDoc(imDoc);
                    //}

                    //if (wsFile.IsDeleted) { }

                    //if (wsFile.IsRecord) { }

                    sbFileInfo.AppendLine("DocNum: " + wsFile.Number);
                    sbFileInfo.AppendLine("DocName: " + wsFile.Description.FileNameWithExtn(wsFile.Extn));
                    sbFileInfo.AppendLine("DocPath: " + item.FilePath);
                    sbFileInfo.AppendLine("IsLocked: " + wsFile.IsLocked);
                    sbFileInfo.AppendLine("IsCheckedOut: " + wsFile.IsCheckedOut);
                    sbFileInfo.AppendLine("IsDeleted: " + wsFile.IsDeleted);
                    sbFileInfo.AppendLine("IsRecord: " + wsFile.IsRecord);
                    sbFileInfo.AppendLine();

                    imDoc.SetAttributeByID(imProfileAttributeID.imProfileFrozen, true);

                    //imDoc.HistoryList.Add(imHistEvent.imHistoryFrozen, 0, 0, "Audit Manager", "eAudit closure", String.Empty, String.Empty, String.Empty);
                    AddImHistoryInfo(imDoc, HistoryInfoType.CLOSURE);

                    IManProfileUpdateResult res = imDoc.UpdateWithResults();
                    if (res.Succeeded)
                    {
                        sbFileInfo.AppendLine("ClosureStatus: Success");
                    }
                    else
                    {
                        sbFileInfo.AppendLine("ClosureStatus: Failure");
                    }

                    sbFileInfo.AppendLine();
                    sbFileInfo.AppendLine(AmUtil.GetLineSeperator);
                    sbFileInfo.AppendLine();

                    sbClosureMailInfo.Append("<tr><td align='center' valign='middle'>");
                    sbClosureMailInfo.Append(wsFile.Description.FileNameWithExtn(wsFile.Extn));
                    sbClosureMailInfo.Append("</td><td align='center' valign='middle'>");
                    sbClosureMailInfo.Append(item.FilePath.Remove(0, 4));
                    sbClosureMailInfo.Append("</td><td align='center' valign='middle'>");
                    if (wsFile.IsRecord)
                    {
                        sbClosureMailInfo.Append("X");
                    }
                    sbClosureMailInfo.Append("</td></tr>");
                }
            }

            if (largeRetFiles != null && largeRetFiles.Count > 0)
            {
                int idx = 0;
                sbFileInfo.AppendLine("Large Retention file included in the closure.");
                sbFileInfo.AppendLine();
                largeRetFiles.ForEach(x => sbFileInfo.AppendLine(++idx + ". " + x));

                foreach (var item in largeRetFiles)
                {
                    sbClosureMailInfo.Append("<tr align='center'><td><p>");
                    sbClosureMailInfo.Append(item);
                    sbClosureMailInfo.Append("</p></td><td><p>");
                    sbClosureMailInfo.Append("Large file retention server");
                    sbClosureMailInfo.Append("</p></td><td align='center' valign='middle'><p>");
                    sbClosureMailInfo.Append("</p></td></tr>");
                }
            }

            wsGLog.AdditionalInfo = sbFileInfo.ToString();

            WsUtility.CreateWsLog(wsModelIn.ObjectID, wsGLog);

            var recepients = WsUtility.GetEmailRecepients(wsModel, EmailRecepientType.MANAGER_N_PARTNER_N_ADMIN);

            var mailBody = AmUtil.SendMail_Closure(WsActivityType.CLOSURE_INITIATE.ToString(), wsModel.WsProfile.EngNum, wsModel.Name, recepients, sbClosureMailInfo.ToString());

            wsGLog.WsLogActivityType = WsLogActivityType.ClosureConfirmEmail;
            WsUtility.CreateEmailLog(wsModelIn.ObjectID, mailBody, wsGLog);

            WsUtility.SaveClosureInfo(wsModel.WsProfile.EngNum,
                                      string.Format("{0}|{1}", string.Join(",", wsFiles.Select(x => x.Number).ToList()),
                                                    ((initiateClosureWsModel.LargeRetFiles == null || initiateClosureWsModel.LargeRetFiles.Count == 0) ?
                                                     string.Empty : string.Join(",", initiateClosureWsModel.LargeRetFiles))
                                                    ),
                                      string.Join(",", recepients.Select(x => x.Item2).ToList()),
                                      mailBody, initiateClosureWsModel.Comment,
                                      initiateClosureWsModel.LargeRetFiles == null ? false : (initiateClosureWsModel.LargeRetFiles.Count > 0));

            //return IM.Mgr.Workspace.GetWs(wsModelIn.ObjectID);
        }
 public AmMvcAuthorizationFilter()
 {
     base.Users = AmUtil.GetActivityUserNameWithDomain();
 }