예제 #1
0
        public IActionResult EditPathwaySteps(string editid, PathwaySteps steps)
        {
            steps.Id = new ObjectId(editid);
            var editstepid = _peopleRepository.FindById(editid);
            var pathwayid  = editstepid.PathwayId;

            if (ModelState.IsValid)
            {
                string webRootPath = _hostEnvironment.WebRootPath;
                var    files       = HttpContext.Request.Form.Files;
                if (files.Count > 0)
                {
                    string fileName   = Guid.NewGuid().ToString();
                    var    uploads    = Path.Combine(webRootPath, @"Documents");
                    var    extenstion = Path.GetExtension(files[0].FileName);
                    using (var filesStreams = new FileStream(Path.Combine(uploads, fileName + extenstion), FileMode.Create))
                    {
                        files[0].CopyTo(filesStreams);
                    }
                    steps.Documents = files[0].FileName;
                    steps.PathwayId = editstepid.PathwayId;
                    steps.IssuerId  = editstepid.IssuerId;
                    steps.GetBadges = steps.GetBadges;
                    steps.count     = editstepid.count;
                }

                _peopleRepository.ReplaceOne(steps);
            }
            return(RedirectToAction("ManagePathway", new { id = pathwayid }));
        }
예제 #2
0
        public IActionResult ManagePathwayPost(PathwaySteps pathwaySteps, string id)
        {
            var totalRecord    = _peopleRepository.FilterBy(e => e.PathwayId == id);
            var numberofRecord = totalRecord.Count();

            var path     = _path.FindById(id);
            var issuerid = path.IssuersId;

            if (ModelState.IsValid)
            {
                string webRootPath = _hostEnvironment.WebRootPath;
                var    files       = HttpContext.Request.Form.Files;
                if (files.Count > 0)
                {
                    string fileName   = Guid.NewGuid().ToString();
                    var    uploads    = Path.Combine(webRootPath, @"Documents");
                    var    extenstion = Path.GetExtension(files[0].FileName);
                    using (var filesStreams = new FileStream(Path.Combine(uploads, files[0].FileName), FileMode.Create))
                    {
                        files[0].CopyTo(filesStreams);
                    }
                    pathwaySteps.Documents       = files[0].FileName;
                    pathwaySteps.PathwayId       = id.ToString();
                    TempData["PathwayStepBadge"] = pathwaySteps.GetBadges;
                }
                if (numberofRecord == 0)
                {
                    pathwaySteps.count = 0;
                }
                pathwaySteps.count    = numberofRecord + 1;
                pathwaySteps.IssuerId = issuerid;
                _peopleRepository.InsertOne(pathwaySteps);
            }
            return(RedirectToAction("ManagePathway"));
        }
예제 #3
0
        public IActionResult StepPost(string id, string isCompleted)
        {
            if (isCompleted != null)
            {
                var v = _checkRequest.FindById(isCompleted);
                //CheckRequest c = new CheckRequest() {
                //      IsCompleted = true,
                //     Id= new ObjectId("5efc43e8bbe4823244bd798a")

                //};
                string webRootPath = _hostEnvironment.WebRootPath;
                var    files       = HttpContext.Request.Form.Files;
                if (files.Count > 0)
                {
                    string fileName   = Guid.NewGuid().ToString();
                    var    uploads    = Path.Combine(webRootPath, @"UploadedDocuments");
                    var    extenstion = Path.GetExtension(files[0].FileName);
                    using (var filesStreams = new FileStream(Path.Combine(uploads, files[0].FileName), FileMode.Create))
                    {
                        files[0].CopyTo(filesStreams);
                    }
                    v.Documents = files[0].FileName;
                }
                v.IsCompleted = true;
                v.IsDeclined  = null;
                _checkRequest.ReplaceOne(v);
                return(RedirectToAction("PathwaySteps", new { pathwayId = v.PathwayId }));
            }

            var claimsIdentity = (ClaimsIdentity)User.Identity;
            /*var claim = claimsIdentity.FindFirst(ClaimTypes.Email);*/
            var claim  = claimsIdentity.Claims.ToArray();
            var email  = claim[1].Value;
            var userid = User.Claims.FirstOrDefault(c => c.Type == AppUtility.UserId).Value;

            var          all = _pathSteps.AsQueryable().ToList();
            PathwaySteps p   = all.Where(e => e.count == 1).Where(e => e.PathwayId == id).FirstOrDefault();

            if (p != null)
            {
                CheckRequest check = new CheckRequest()
                {
                    CreatedAt     = DateTime.Now,
                    IsApproved    = false,
                    IsCompleted   = false,
                    PathwayId     = new MongoDB.Bson.ObjectId(id),
                    UserId        = new ObjectId(userid),
                    PathwayStepId = p.Id
                };
                _checkRequest.InsertOne(check);
            }
            return(RedirectToAction("Index"));
        }
예제 #4
0
        public IActionResult Step(string id)
        {
            CheckRequest check   = _checkRequest.FindById(id);
            PathwaySteps pathway = new PathwaySteps()
            {
                Id = check.PathwayStepId
            };
            List <PathwaySteps> all       = _pathSteps.AsQueryable().ToList();
            List <PathwaySteps> list      = all.Where(e => e.Id == pathway.Id).ToList();
            PathwayVM           pathwayVM = new PathwayVM()
            {
                pathwaySteps = list
            };

            ViewBag.checkRequestId = id;
            return(View(pathwayVM));
        }
예제 #5
0
        public IActionResult Start(string id, string isCompleted, int currentpage)
        {
            if (isCompleted != null)
            {
                var v = _checkRequest.FindById(isCompleted);
                //CheckRequest c = new CheckRequest() {
                //      IsCompleted = true,
                //     Id= new ObjectId("5efc43e8bbe4823244bd798a")

                //};
                v.IsCompleted = true;
                _checkRequest.ReplaceOne(v);
                return(RedirectToAction("Index"));
            }
            var claimsIdentity = (ClaimsIdentity)User.Identity;
            /*var claim = claimsIdentity.FindFirst(ClaimTypes.Email);*/
            var claim  = claimsIdentity.Claims.ToArray();
            var email  = claim[1].Value;
            var userid = User.Claims.FirstOrDefault(c => c.Type == AppUtility.UserId).Value;

            var all = _pathSteps.AsQueryable().ToList();
            // PathwaySteps p = all.Where(e => e.count == 1 ).Where(e=>e.PathwayId==id).FirstOrDefault();
            PathwaySteps p = all.Where(e => e.count == 1 && e.PathwayId == id).FirstOrDefault();

            if (p != null)
            {
                DateTime     today = DateTime.Now;
                CheckRequest check = new CheckRequest()
                {
                    CreatedAt     = today,
                    IsApproved    = false,
                    IsCompleted   = false,
                    PathwayId     = new MongoDB.Bson.ObjectId(id),
                    UserId        = new ObjectId(userid),
                    PathwayStepId = p.Id
                };
                _checkRequest.InsertOne(check);
            }
            return(RedirectToAction("Index", new { productPage = currentpage }));
        }
예제 #6
0
        public async Task <IActionResult> Approve(string id)
        {
            var completePathway = new List <CompletedPathway>();
            var request         = _checkRequest.AsQueryable().ToList();
            var claimsIdentity  = (ClaimsIdentity)User.Identity;
            /*var claim = claimsIdentity.FindFirst(ClaimTypes.Email);*/
            var claim  = claimsIdentity.Claims.ToArray();
            var email  = claim[1].Value;
            var userid = User.Claims.FirstOrDefault(c => c.Type == AppUtility.UserId).Value;

            var a = _checkRequest.FindById(id);

            a.IsApproved = true;
            a.IsDeclined = false;
            _checkRequest.ReplaceOne(a);



            if (a.IsApproved == true)
            {
                var user       = _user.FindById(a.UserId.ToString());
                var pathstep   = _pathwaySteps.FindById(a.PathwayStepId.ToString());
                var bdge       = _badge.FindById(pathstep.GetBadges);
                var urlOfImage = "http://digibadge.eastus.cloudapp.azure.com/" + bdge.ImageUrl.Replace('\\', '/');
                await _emailSender.SendEmailAsync(user.Email,
                                                  "Congratulations You are awarded a badge",
                                                  $"<div class='p-6 m-3 border rounded row' style='background-color:beige'>" +
                                                  $"<div class='col-3'></div><div class='col-6' style='background-color:white'>" +
                                                  $"<div class='row text-center m-2'>" +
                                                  $"<h3 style = 'color:blueviolet' >" +
                                                  $"Congratulation, you earned a badge</h3></div><hr />" +
                                                  $"<div class='text-center'>" +
                                                  $"<img src = '{urlOfImage}' width='200px' height='200px' alt='image' /></div>" +
                                                  $"<hr /><br /><div class='row text-left'>" +
                                                  //$"<div class='row text-left'>" +
                                                  $"<p class='m-2'>{HtmlEncoder.Default.Encode(bdge.BadgeName)}</p></div>" +

                                                  $"<p class='m-2'>{HtmlEncoder.Default.Encode(bdge.EarningCriteriaDescription)}</p></div>" +

                                                  /* $"<hr /><hr /><div class='row text-left m-2'>" +
                                                   * $"<p>Issued by :</p></div><div class='row text-left m-2'><p>" +
                                                   * $"<b>{HtmlEncoder.Default.Encode(issuer.Name)}</b></p></div><hr />" +
                                                   * $"<div class='text-center'>" +*/
                                                  /*$"<a class='btn btn-secondary' href='https://localhost:44326/'>Create Account</a></div>"*/
                                                  $"<br /><br/></div><div class='col-3'></div></div>");

                var pathwayId         = a.PathwayId.ToString();
                var totalPathwaySteps = _pathwaySteps.AsQueryable().ToList();
                var totalCheckRequest = _checkRequest.AsQueryable().ToList();
                var countOfPathstepsinCheckRequest = totalCheckRequest.Where(e => e.PathwayId == new MongoDB.Bson.ObjectId(pathwayId)).ToList();
                var count = pathstep.count;
                var p0    = totalPathwaySteps.Where(e => e.PathwayId == pathwayId).ToList();

                PathwaySteps p1 = p0.Where(e => e.count == count).FirstOrDefault();

                PathwaySteps p = totalPathwaySteps.Where(e => e.PathwayId == pathwayId).Where(e => e.count == count + 1).FirstOrDefault();

                if (p1 != null)
                {
                    var                badg   = _badge.FindById(p1.GetBadges.ToString());
                    DateTime           d      = DateTime.Now;
                    DateTime           d1     = DateTime.Today.AddDays(badg.ExpiryDuration);
                    DateTime           today  = DateTime.Now;
                    EarnerBadgeDetails earner = new EarnerBadgeDetails()
                    {
                        AwardedDate    = today,
                        BadgeId        = new MongoDB.Bson.ObjectId(p1.GetBadges),
                        RecipientEmail = user.Email,
                        RecipientName  = user.FirstName,
                        ExpirationDate = d1,
                        UserId         = a.UserId,
                        PathwayId      = new MongoDB.Bson.ObjectId(p1.PathwayId),
                        IsExpired      = false
                    };

                    _earnerDetails.InsertOne(earner);
                }
                if (p != null)
                {
                    DateTime today = DateTime.Now;


                    CheckRequest check = new CheckRequest()
                    {
                        CreatedAt     = today,
                        IsApproved    = false,
                        IsCompleted   = false,
                        PathwayId     = new MongoDB.Bson.ObjectId(a.PathwayId.ToString()),
                        UserId        = a.UserId,
                        PathwayStepId = p.Id
                    };
                    _checkRequest.InsertOne(check);
                }
            }
            return(RedirectToAction("Index"));
        }