예제 #1
0
        public async Task <IActionResult> UpdateRequest([FromBody] StatusUpdateViewModel model)
        {
            if (!Guid.TryParse(model.Id, out Guid requestId))
            {
                return(NotFound());
            }

            PaymentRequest request = await DataContext.Store
                                     .GetOneAsync <PaymentRequest>(r => r.Id == requestId);

            if (model.Status == RequestStatus.Pending)
            {
                return(BadRequest("Forbidden action attempted. Transactions cannot be reversed."));
            }
            if (request.Status != RequestStatus.Pending)
            {
                return(BadRequest("The current transaction has already been completed"));
            }

            if (model.Status == RequestStatus.Declined)
            {
                request.Status = model.Status;
                await DataContext.Store.UpdateOneAsync(request);

                return(Ok());
            }

            if (!await PaymentService.ConcludeTransaction(request))
            {
                return(BadRequest("Failed to process request"));
            }

            return(Ok());
        }
예제 #2
0
        public IList <StatusUpdateViewModel> GetStatusUpdates(int pageId)
        {
            var statusUpdates = StatusUpdates.Where(x => x.PageId == pageId).OrderByDescending(x => x.UpdateDate)
                                .ToList();

            return(statusUpdates.Select(x => StatusUpdateViewModel.FromModel(x)).ToList());
        }
 public void CreatesStatusUpdateItem()
 {
     controller.SetCurrentPage(AppContext, homePage.Content);
     var post = new StatusUpdateViewModel { Post = "Hei hei!", PageId = homeId };
     var result = controller.CreateStatusUpdateItem(post);
     Assert.IsTrue(AppContext.Hive.Cms().Content.Any<Content>("NodeTypeAlias = @0 && post = @1", "statusUpdate", "Hei hei!"));
     Assert.IsInstanceOf<RedirectToUmbracoPageResult>(result);
     Assert.AreEqual(homePage.Content.Id, ((RedirectToUmbracoPageResult)result).PageEntity.Id);
 }
예제 #4
0
        public StatusUpdateViewModel CreateStatusUpdate(StatusUpdateViewModel model)
        {
            var statusUpdate = StatusUpdate.FromViewModel(model);

            statusUpdate.UpdateDate = DateTime.Now;

            UnitOfWork.Add(statusUpdate);
            UnitOfWork.SaveChanges();

            return(StatusUpdateViewModel.FromModel(statusUpdate));
        }
예제 #5
0
        public static StatusUpdate FromViewModel(StatusUpdateViewModel model)
        {
            var statusUpdate = new StatusUpdate();

            statusUpdate.Text       = model.Text;
            statusUpdate.PageId     = model.PageId;
            statusUpdate.Id         = model.Id;
            statusUpdate.UpdateDate = model.UpdateDate;
            statusUpdate.Author     = model.Author;
            return(statusUpdate);
        }
        public ActionResult Index(StatusUpdateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var userId = WebSecurity.GetUserId(User.Identity.Name);
                _db.StatusUpdates.Add(new StatusUpdate {
                    Status = model.Status, UserId = userId, StatusDate = DateTime.Now
                });
                _db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
예제 #7
0
        public async Task <IActionResult> UpdateClaim(StatusUpdateViewModel model)
        {
            if (!Guid.TryParse(model.Id, out Guid claimId))
            {
                return(NotFound());
            }

            Bet bet = await DataContext.Store.GetByIdAsync <Bet>(claimId);

            if (bet == null)
            {
                return(NotFound());
            }

            bet.CashOutStatus = model.Status;

            await DataContext.Store.UpdateOneAsync(bet);

            return(Ok());
        }
예제 #8
0
        public StatusUpdateViewModel Post([FromBody] StatusUpdateViewModel model)
        {
            if (model == null)
            {
                return(null);
            }

            var appSettings = AppSettings();

            LightSpeedRepository repository = new LightSpeedRepository(appSettings);

            model.Author = UserContext.CurrentUserFullName;
            var updatedStatus = repository.CreateStatusUpdate(model);


            var pageContents = _pageService.GetById(model.PageId);

            SendUpdate(repository, updatedStatus, model.PageId, model.PageId, pageContents.Title, _projectStatusUpdateEmail);
            return(updatedStatus);
        }
예제 #9
0
        public void SendUpdate(LightSpeedRepository repository, StatusUpdateViewModel updatedStatus, int pageId, int projectId, string projectTitle, ProjectStatusUpdateEmail projectStatusUpdateEmail)
        {
            var relationList = _pageService.GetRelationsByPageId(pageId).ToList();
            var emailModels  = new List <EmailProjectStatusUpdateViewModel>();

            var environmentPrefix = string.Empty;

            if (ConfigurationManager.AppSettings.AllKeys.Contains("environment"))
            {
                environmentPrefix = ConfigurationManager.AppSettings["environment"];
                environmentPrefix = $"[{environmentPrefix}] ";
            }

            foreach (var relViewModel in relationList)
            {
                var mod = new EmailProjectStatusUpdateViewModel
                {
                    ProjectName  = projectTitle,
                    ProjectId    = projectId.ToString(),
                    Subject      = $"{environmentPrefix}The status of project [{projectTitle}] has been updated.",
                    Author       = updatedStatus.Author,
                    UpdateDate   = updatedStatus.UpdateDate.ToString("f"),
                    StatusUpdate = updatedStatus.Text
                };

                var user = repository.GetUserById(relViewModel.userId);

                if (user != null)
                {
                    mod.Name      = $"{user.Firstname} {user.Lastname}";
                    mod.ToAddress = user.Email;
                }

                emailModels.Add(mod);
                projectStatusUpdateEmail.Send(mod);
            }
        }
예제 #10
0
        public async Task <IActionResult> Post([FromBody] StatusUpdateViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var newStatus = _mapper.Map <StatusUpdateViewModel, StatusUpdate>(model);

                    if (newStatus.DatePosted == DateTime.MinValue)
                    {
                        newStatus.DatePosted = DateTime.Now;
                    }

                    var currentUser = await _userManager.FindByNameAsync(User.Identity.Name);

                    newStatus.User = currentUser;

                    _repo.AddEntity(newStatus);

                    if (_repo.SaveAll())
                    {
                        return(Created($"/app/timeline/{User.Identity.Name}", _mapper.Map <StatusUpdate, StatusUpdateViewModel>(newStatus)));
                    }
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Failed to send status update: {ex}");
            }

            return(BadRequest("Failed to send"));
        }