Beispiel #1
0
        public async Task <StageChangeResponse> InsertOrUpdateAsync(AppState.Stage stage, int userId)
        {
            async Task AddNewStage()
            {
                var stageDto = new StageDto()
                {
                    UserId = userId,
                    Title  = stage.Title
                };

                _appDbContext.Stages.Add(stageDto);
                await _appDbContext.SaveChangesAsync();
            }

            if (stage.Id != 0)
            {
                var exist = await _appDbContext.Stages.SingleOrDefaultAsync(p => p.Id == stage.Id && p.UserId == userId);

                if (exist != null)
                {
                    exist.Title = stage.Title;
                    await _appDbContext.SaveChangesAsync();
                }
                else
                {
                    await AddNewStage();
                }
            }
            else
            {
                await AddNewStage();
            }

            return(new StageChangeResponse());
        }
        public void AddStage_AddsNewStage_WhenAllIsOk()
        {
            //arrange
            var uow = new Mock <IUnitOfWork>();

            uow.Setup(x => x.Stages.Add(It.IsAny <Stage>()))
            .Callback((Stage x) => { _stages.Add(x); });
            uow.Setup(x => x.Stages.GetAll()).Returns(_stages);

            var newStage = new StageDto()
            {
                Caption = "TEST1"
            };

            var stagesBefore = uow.Object.Stages.GetAll().Count();

            //sut
            var sut = new OrdersService(uow.Object);

            sut.AddStage(newStage);
            var stages = sut.GetAllOrderStages().ToList();

            //assert
            Assert.AreEqual(stagesBefore + 1, stages.Count);
            Assert.AreEqual(stages[1].Caption, newStage.Caption);
        }
Beispiel #3
0
        private void Ok_Btn_Click(object sender, RoutedEventArgs e)
        {
            var stage = new StageDto()
            {
                Caption = StageCaption_Tb.Text
            };

            var request = WebRequest.Create("http://localhost/online_shop_wcf_services/StageService.svc/stages");

            request.Method      = "POST";
            request.Credentials = CredentialCache.DefaultCredentials;
            request.ContentType = "application/json";

            var serializer = new JsonSerializer();

            using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                using (var writer = new JsonTextWriter(streamWriter))
                {
                    serializer.Serialize(writer, stage);
                }

            var response = request.GetResponse();

            Close();
        }
        public async Task <IActionResult> PutStage(Guid id, StageDto stageDto)
        {
            var stage = _mapper.Map <Stage>(stageDto);

            if (id != stage.Id)
            {
                return(BadRequest());
            }

            _context.Entry(stage).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StageExists(id))
                {
                    return(NotFound());
                }

                throw;
            }

            return(NoContent());
        }
        public async Task <ActionResult <StageDto> > PostStage(Guid sessionId, StageDto stageDto)
        {
            stageDto.SessionId = sessionId;
            var stage = _mapper.Map <Stage>(stageDto);

            _context.Stages.Add(stage);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetStage", new { sessionId = sessionId, id = stage.Id },
                                   _mapper.Map <StageDto>(stage)));
        }
Beispiel #6
0
        private void MSMQButton_Click(object sender, RoutedEventArgs e)
        {
            var stage = new StageDto()
            {
                Caption = StageCaption_Tb.Text
            };

            var client = OnlineShopWebServicesContainer.Instance.StagesMSMQClientInstance;

            client.AddStage(stage);

            Close();
        }
Beispiel #7
0
        public async Task <AppStateResponse> LoadHistory(int id, int userId)
        {
            var history = await _appDbContext.History.FindAsync(id);

            if (history == null || history.UserId != userId)
            {
                return new AppStateResponse()
                       {
                           ErrorMessage = "History not found"
                       }
            }
            ;

            var historyToRemove = _appDbContext.History.Where(p => p.UserId == userId && p.Id >= history.Id);

            _appDbContext.History.RemoveRange(historyToRemove);

            var stagesToRemove = _appDbContext.Stages.Where(p => p.UserId == userId);

            _appDbContext.Stages.RemoveRange(stagesToRemove);

            var issuesToRemove = _appDbContext.Issues.Where(p => stagesToRemove.SelectMany(i => i.Issues).Select(z => z.Id).Contains(p.Id));

            _appDbContext.Issues.RemoveRange(issuesToRemove);

            var stages = JsonConvert.DeserializeObject <List <StageDto> >(history.Body);

            foreach (var stage in stages.OrderBy(p => p.Id))
            {
                var newStage = new StageDto()
                {
                    Title  = stage.Title,
                    UserId = stage.UserId,
                    Issues = new List <IssueDto>()
                };

                var newNextIssue = (IssueDto)null;
                var lastIssue    = stage.Issues.SingleOrDefault(p => p.NextIssueId == null);
                while (lastIssue != null)
                {
                    newNextIssue = new IssueDto()
                    {
                        Body            = lastIssue.Body,
                        CreatedDateTime = lastIssue.CreatedDateTime,
                        Stage           = newStage,
                        Title           = lastIssue.Title,
                        UserId          = lastIssue.UserId,
                        NextIssue       = newNextIssue
                    };
                    _appDbContext.Issues.Add(newNextIssue);

                    lastIssue = stage.Issues.SingleOrDefault(p => p.NextIssueId == lastIssue.Id);
                }

                _appDbContext.Stages.Add(newStage);
            }

            await _appDbContext.SaveChangesAsync();

            return(new AppStateResponse()
            {
                AppState = await GetStateAsync(userId)
            });
        }
    }
Beispiel #8
0
 public void AddStage(StageDto stage)
 {
     _orderService.AddStage(stage);
 }
Beispiel #9
0
 public async Task CreateStageAsync([FromBody] StageDto stage)
 {
     await _stageService.CreateStageAsync(stage);
 }
Beispiel #10
0
        public async Task CreateStageAsync(StageDto stage)
        {
            await _context.AddAsync(_mapper.Map <Stage>(stage));

            await _context.SaveChangesAsync();
        }
Beispiel #11
0
        public void AddStage(StageDto stage)
        {
            DbUnitOfWork.Stages.Add(Mapper.Map <StageDto, Stage>(stage));

            DbUnitOfWork.Stages.SaveChanges();
        }