Exemplo n.º 1
0
        public async Task <IActionResult> GetShiftCalendar(string j, CancellationToken cancellationToken)
        {
            int.TryParse(Base64Utils.Base64Decode(j), out int jobID);
            User user = await _authService.GetCurrentUser(HttpContext, cancellationToken);

            var shiftDetails = await _requestService.GetJobAndRequestSummaryAsync(jobID, cancellationToken);

            if (shiftDetails == null || shiftDetails.JobSummary.RequestType != RequestType.Shift)
            {
                throw new Exception("Job does not exist or Not a shift");
            }
            if (shiftDetails.JobSummary.VolunteerUserID == null || shiftDetails.JobSummary.VolunteerUserID != user.ID)
            {
                throw new Exception("User not assigned to shift");
            }

            var             location        = shiftDetails.RequestSummary.Shift.Location;
            LocationDetails locationDetails = await _addressService.GetLocationDetails(location, cancellationToken);

            var startDate = shiftDetails.RequestSummary.Shift.StartDate.ToUniversalTime()
                            .ToString("yyyy''MM''dd'T'HH''mm''ss'Z'");
            var stopDate = shiftDetails.RequestSummary.Shift.EndDate.ToUniversalTime()
                           .ToString("yyyy''MM''dd'T'HH''mm''ss'Z'");
            var stampDate = DateTime.Now.ToUniversalTime()
                            .ToString("yyyy''MM''dd'T'HH''mm''ss'Z'");
            var group = await _groupService.GetGroupById(shiftDetails.RequestSummary.ReferringGroupID, cancellationToken);

            var icalContent = $"BEGIN:VCALENDAR\n" +
                              $"VERSION:2.0\n" +
                              $"PRODID:-//Help My Street/iCal Support\\EN\n" +
                              $"BEGIN:VEVENT\n" +
                              $"UID:hms-vacc-{group.GroupId}-{j}\n" +
                              $"DTSTAMP:{stampDate}\n" +
                              $"ORGANIZER;CN={group.GroupName}MAILTO:[email protected]\n" +
                              $"DTSTART:{startDate}\n" +
                              $"DTEND:{stopDate}\n" +
                              $"SUMMARY:{shiftDetails.JobSummary.SupportActivity.FriendlyNameShort()} Shift\n" +
                              $"LOCATION:{locationDetails.Address.AddressLine1}, {locationDetails.Address.Postcode}\n" +
                              $"GEO:{locationDetails.Latitude};{locationDetails.Longitude}\n" +
                              $"URL:https://www.helpmystreet.org/link/j/{j}\n" +
                              $"END:VEVENT\n" +
                              $"END:VCALENDAR";
            var calBytes = Encoding.ASCII.GetBytes(icalContent);

            return(File(fileContents: calBytes, fileDownloadName: "shift-event.ics", contentType: "text/calendar"));
        }
Exemplo n.º 2
0
        private static void InitializeAdministration(SystemDatabaseContext context)
        {
            User administration = new User
            {
                Username     = "******",
                Email        = "*****@*****.**",
                HashPassword = PasswordHasher.HashPassword(Base64Utils.Base64Decode("MTIzNDU2")),
                FirstName    = "System",
                LastName     = "Admin",
                Avatar       = "/img/no_avatar.png",
                BirthDay     = DateTime.Now,
                Active       = true
            };

            if (!context.User.Any(it => it.Username == administration.Username))
            {
                // Nếu chưa có tài khoản quản trị viên cấp cao này, tiến hành tạo mới
                context.User.Add(administration);
                context.SaveChanges();
            }
        }
Exemplo n.º 3
0
        public async Task <IActionResult> JoinAndGo(string groupIdEnc, CancellationToken cancellationToken)
        {
            var groupId = Int32.Parse(Base64Utils.Base64Decode(groupIdEnc));
            var group   = (Groups)groupId;

            CommunityViewModel communityViewModel = await _communityRepository.GetCommunity(groupId, cancellationToken);

            if (communityViewModel == null)
            {
                return(RedirectToAction("Error404", "Errors"));
            }

            var user = await _authService.GetCurrentUser(HttpContext, cancellationToken);

            var outcome = await _groupMemberService.PostAssignRole(user.ID, groupId, GroupRoles.Member, -1, cancellationToken);

            communityViewModel.IsLoggedIn    = true;
            communityViewModel.IsGroupMember = outcome == GroupPermissionOutcome.Success;

            return(View(communityViewModel.View, communityViewModel));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> GetDirectionsLink(string j, CancellationToken cancellationToken)
        {
            int.TryParse(Base64Utils.Base64Decode(j), out int jobID);
            var shiftDetails = await _requestService.GetJobAndRequestSummaryAsync(jobID, cancellationToken);

            var locationPostcode = "";

            if (shiftDetails.JobSummary.RequestType == RequestType.Task)
            {
                locationPostcode = WebUtility.UrlEncode(shiftDetails.JobSummary.PostCode);
            }
            else
            {
                var             location        = shiftDetails.RequestSummary.Shift.Location;
                LocationDetails locationDetails = await _addressService.GetLocationDetails(location, cancellationToken);

                locationPostcode = WebUtility.UrlEncode(locationDetails.Address.Postcode);
            }
            var directionsLink = $"https://www.google.com/maps/dir/?api=1&destination={locationPostcode}";

            return(new OkObjectResult(directionsLink));
        }
        public void Base64Encode_Base64Decode_HelloWorld()
        {
            string result = Base64Utils.Base64Decode(Base64Utils.Base64Encode("Hello World!"));

            Assert.AreEqual("Hello World!", result);
        }
        public void Base64Encode_Base64Decode_EmptyString()
        {
            string result = Base64Utils.Base64Decode(Base64Utils.Base64Encode(""));

            Assert.AreEqual("", result);
        }