コード例 #1
0
        public ActionResult CreateNewRequest(WorkFlowMasterModel workFlowMasterModel)
        {
            var loggedinUser = Session["UserName"].ToString();

            var treelist = Request.Form["selectedItems"];

            var treeViewModel = JsonConvert.DeserializeObject <List <TreeViewNode> >(treelist);

            List <WorkFlowMasterModel> workFlowMasterList = new List <WorkFlowMasterModel>();

            foreach (var a in treeViewModel)
            {
                if (a.parent == "#")
                {
                    WorkFlowMasterModel workFlowMasterValues = new WorkFlowMasterModel()
                    {
                        WorkspaceID   = a.id,
                        WorkspaceName = a.text,
                        ReportID      = null,
                        ReportName    = null,
                        RequestFor    = loggedinUser,
                        RequestedBy   = loggedinUser,
                        RequestedDate = DateTime.Now,
                        Status        = "PENDING"
                    };
                    workFlowMasterList.Add(workFlowMasterValues);
                }
                else
                {
                    WorkFlowMasterModel workFlowMasterValues = new WorkFlowMasterModel()
                    {
                        WorkspaceID   = a.parent,
                        WorkspaceName = a.parenttext,
                        ReportID      = a.id,
                        ReportName    = a.text,
                        RequestFor    = loggedinUser,
                        RequestedBy   = loggedinUser,
                        RequestedDate = DateTime.Now,
                        Status        = "PENDING"
                    };
                    workFlowMasterList.Add(workFlowMasterValues);
                }
            }

            List <WorkFlowMasterModel> workspaces = new List <WorkFlowMasterModel>();

            for (int i = 0; i < workFlowMasterList.Count; i++)
            {
                bool duplicate = false;
                for (int z = 0; z < i; z++)
                {
                    if (workFlowMasterList[z].WorkspaceID == workFlowMasterList[i].WorkspaceID)
                    {
                        duplicate = true;
                        break;
                    }
                }
                if (!duplicate)
                {
                    List <WorkFlowDetailsModel> workFlowDetailsList = new List <WorkFlowDetailsModel>();
                    foreach (var b in workFlowMasterList)
                    {
                        if (b.ReportID != null && b.WorkspaceID == workFlowMasterList[i].WorkspaceID)
                        {
                            WorkFlowDetailsModel workFlowDetails = new WorkFlowDetailsModel()
                            {
                                ReportID      = b.ReportID,
                                ReportName    = b.ReportName,
                                RequestedDate = b.RequestedDate,
                                Status        = b.Status
                            };
                            workFlowDetailsList.Add(workFlowDetails);
                        }
                    }
                    //to get the workspace owner for a given workspace
                    WorkSpaceOwnerModel workspaceOnwer = new WorkSpaceOwnerModel();
                    string baseurl = ConfigurationManager.AppSettings["baseURL"];
                    using (var client = new HttpClient())
                    {
                        client.BaseAddress = new Uri(baseurl);
                        client.DefaultRequestHeaders.Clear();
                        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                        var responseTask = client.GetAsync(string.Format("api/GetWorkSpaceOwnerByWorkspaceId/?workspaceId={0}", workFlowMasterList[i].WorkspaceID));
                        responseTask.Wait();

                        var result = responseTask.Result;
                        if (result.IsSuccessStatusCode)
                        {
                            var readTask = result.Content.ReadAsAsync <WorkSpaceOwnerDTO>();
                            readTask.Wait();

                            var config = new MapperConfiguration(cfg =>
                            {
                                cfg.CreateMap <WorkSpaceOwnerDTO, WorkSpaceOwnerModel>();
                                cfg.CreateMap <UsersDTO, UsersModel>();
                                cfg.CreateMap <PermissionMasterDTO, PermissionMasterModel>();
                                cfg.CreateMap <UserRoleMappingDTO, UserRoleMappingModel>();
                            });
                            IMapper mapper = config.CreateMapper();

                            workspaceOnwer = mapper.Map <WorkSpaceOwnerDTO, WorkSpaceOwnerModel>(readTask.Result);
                            if (workspaceOnwer == null)
                            {
                                ViewBag.ErrorMessage = "Workspace Owner is not assigned to the workspace " + workFlowMasterList[i].WorkspaceName + ",kindly contact Admin";
                                List <TreeViewNode> nodes = new List <TreeViewNode>();
                                nodes        = (List <TreeViewNode>)Session["Nodes"];
                                ViewBag.Json = (new JavaScriptSerializer()).Serialize(nodes);

                                return(View());
                            }
                        }
                    }

                    WorkFlowMasterModel workFlowModel = new WorkFlowMasterModel()
                    {
                        WorkspaceID     = workFlowMasterList[i].WorkspaceID,
                        WorkspaceName   = workFlowMasterList[i].WorkspaceName,
                        OwnerID         = workspaceOnwer.OwnerID,
                        OwnerEmail      = workspaceOnwer.UserMaster.EmailID,
                        RequestFor      = workFlowMasterList[i].RequestFor,
                        RequestedBy     = workFlowMasterList[i].RequestedBy,
                        RequestedDate   = workFlowMasterList[i].RequestedDate,
                        Status          = workFlowMasterList[i].Status,
                        WorkFlowDetails = workFlowDetailsList
                    };
                    workspaces.Add(workFlowModel);
                }
            }


            string Baseurl = ConfigurationManager.AppSettings["baseURL"] + "api/AddNewRequest";

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(Baseurl);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                //HTTP POST
                var postTask = client.PostAsJsonAsync <List <WorkFlowMasterModel> >(Baseurl, workspaces);
                postTask.Wait();
                var result = postTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var subject = "New request created";
                    var link    = ConfigurationManager.AppSettings["redirectUri"] + "PendingApprovals/ViewPendingApprovals";
                    var body    = "Kindly approve the request by clicking following link.<br>" + "\n\n<a Href= " + link + "> Click here </a>";
                    //send email
                    string baseurl = ConfigurationManager.AppSettings["baseURL"] + "api/SendEmail";
                    foreach (var a in workspaces)
                    {
                        EmailModel emailModel = new EmailModel();
                        emailModel.ToEmail = a.OwnerEmail;
                        emailModel.Subject = subject;
                        emailModel.Body    = body;
                        using (var client1 = new HttpClient())
                        {
                            client1.BaseAddress = new Uri(baseurl);
                            client1.DefaultRequestHeaders.Accept.Clear();
                            client1.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                            //HTTP POST
                            var postEmailTask = client1.PostAsJsonAsync <EmailModel>(baseurl, emailModel);
                            postEmailTask.Wait();
                            var emailResult = postEmailTask.Result;
                            if (emailResult.IsSuccessStatusCode)
                            {
                                //return RedirectToAction("CreateNewRequest");
                            }
                        }
                    }
                }
            }

            return(RedirectToAction("CreateNewRequest"));

            //return View();
        }
コード例 #2
0
        public ActionResult RejectRequest(List <TreeViewNode> WorkspaceandReportList, int RequestID)
        {
            if (Session["UserName"] == null)
            {
                return(RedirectToAction("Index", "Login"));
            }

            var loggedinUser = Session["UserName"].ToString();

            List <WorkFlowMasterModel> workFlowMasterList = new List <WorkFlowMasterModel>();

            foreach (var a in WorkspaceandReportList)
            {
                if (a.parent == "#")
                {
                    WorkFlowMasterModel workFlowMasterValues = new WorkFlowMasterModel()
                    {
                        RequestID     = RequestID,
                        WorkspaceID   = a.id,
                        WorkspaceName = a.text,
                        ReportID      = null,
                        ReportName    = null,
                        ProcessedDate = DateTime.Now,
                        Status        = "REJECTED"
                    };
                    workFlowMasterList.Add(workFlowMasterValues);
                }
                else
                {
                    WorkFlowMasterModel workFlowMasterValues = new WorkFlowMasterModel()
                    {
                        RequestID     = RequestID,
                        WorkspaceID   = a.parent,
                        WorkspaceName = a.parenttext,
                        ReportID      = a.id,
                        ReportName    = a.text,
                        ProcessedDate = DateTime.Now,
                        Status        = "REJECTED"
                    };
                    workFlowMasterList.Add(workFlowMasterValues);
                }
            }


            List <WorkFlowMasterModel> workspaces = new List <WorkFlowMasterModel>();

            for (int i = 0; i < workFlowMasterList.Count; i++)
            {
                bool duplicate = false;
                for (int z = 0; z < i; z++)
                {
                    if (workFlowMasterList[z].WorkspaceID == workFlowMasterList[i].WorkspaceID)
                    {
                        duplicate = true;
                        break;
                    }
                }
                if (!duplicate)
                {
                    List <WorkFlowDetailsModel> workFlowDetailsList = new List <WorkFlowDetailsModel>();
                    foreach (var b in workFlowMasterList)
                    {
                        if (b.ReportID != null && b.WorkspaceID == workFlowMasterList[i].WorkspaceID)
                        {
                            WorkFlowDetailsModel workFlowDetails = new WorkFlowDetailsModel()
                            {
                                RequestID     = b.RequestID,
                                ReportID      = b.ReportID,
                                ReportName    = b.ReportName,
                                ProcessedDate = b.ProcessedDate,
                                Status        = b.Status
                            };
                            workFlowDetailsList.Add(workFlowDetails);
                        }
                    }
                    //to get the workspace owner for a given workspace
                    WorkSpaceOwnerModel workspaceOnwer = new WorkSpaceOwnerModel();
                    string baseurl = ConfigurationManager.AppSettings["baseURL"];
                    using (var client = new HttpClient())
                    {
                        client.BaseAddress = new Uri(baseurl);
                        client.DefaultRequestHeaders.Clear();
                        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                        var responseTask = client.GetAsync(string.Format("api/GetWorkSpaceOwnerByWorkspaceId/?workspaceId={0}", workFlowMasterList[i].WorkspaceID));
                        responseTask.Wait();

                        var result = responseTask.Result;
                        if (result.IsSuccessStatusCode)
                        {
                            var readTask = result.Content.ReadAsAsync <WorkSpaceOwnerDTO>();
                            readTask.Wait();

                            var config = new MapperConfiguration(cfg =>
                            {
                                cfg.CreateMap <WorkSpaceOwnerDTO, WorkSpaceOwnerModel>();
                                cfg.CreateMap <UsersDTO, UsersModel>();
                                cfg.CreateMap <PermissionMasterDTO, PermissionMasterModel>();
                                cfg.CreateMap <UserRoleMappingDTO, UserRoleMappingModel>();
                            });
                            IMapper mapper = config.CreateMapper();

                            workspaceOnwer = mapper.Map <WorkSpaceOwnerDTO, WorkSpaceOwnerModel>(readTask.Result);
                        }
                    }

                    WorkFlowMasterModel workFlowModel = new WorkFlowMasterModel()
                    {
                        RequestID       = workFlowMasterList[i].RequestID,
                        WorkspaceID     = workFlowMasterList[i].WorkspaceID,
                        WorkspaceName   = workFlowMasterList[i].WorkspaceName,
                        OwnerID         = workspaceOnwer.OwnerID,
                        ProcessedDate   = workFlowMasterList[i].ProcessedDate,
                        Status          = workFlowMasterList[i].Status,
                        WorkFlowDetails = workFlowDetailsList
                    };
                    workspaces.Add(workFlowModel);
                }
            }


            string Baseurl = ConfigurationManager.AppSettings["baseURL"] + "api/RejectRequest";

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(Baseurl);
                client.DefaultRequestHeaders.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                //HTTP POST
                var postTask = client.PostAsJsonAsync <List <WorkFlowMasterModel> >(Baseurl, workspaces);
                postTask.Wait();

                var result = postTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    return(RedirectToAction("ViewPendingApprovals"));
                }
            }
            return(View());
        }