예제 #1
0
        public async Task SaveChangesAsync_WhenUpdateObjectIsInvalid_ShouldReturnFalse()
        {
            var detail = new ComponentTypeDetail();
            var result = await _componentTypeDetailService.SaveChangesAsync(detail);

            Assert.IsFalse(result);
        }
예제 #2
0
        public async Task SaveChangesAsync_WhenNewObjectIsValid_ShouldReturnTrue()
        {
            var detail = new ComponentTypeDetail
            {
                Name            = "",
                Unit            = "",
                Symbol          = "",
                IsPrimary       = true,
                ComponentTypeId = 1,
                CreatedDateTime = DateTime.UtcNow,
                CreatedByUserId = "7b26038d-1a43-4248-90e1-dc7f0381d7fa",
                IsActive        = true
            };
            var result = await _componentTypeDetailService.SaveChangesAsync(detail);

            Assert.IsTrue(result);
        }
예제 #3
0
        public async Task <IActionResult> ComponentTypeDetail(ComponentTypeDetailInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var detail = await _componentTypeDetailService.GetByIdAsync(model.Id);

            if (detail == null)
            {
                detail = new ComponentTypeDetail
                {
                    Name            = model.Name,
                    Unit            = model.Unit,
                    Symbol          = model.Symbol,
                    IsPrimary       = model.IsPrimary,
                    ComponentTypeId = model.ComponentTypeId,
                    CreatedDateTime = DateTime.UtcNow,
                    CreatedByUserId = _userManager.GetUserId(User),
                    IsActive        = true
                };
            }
            else
            {
                detail.Name   = model.Name;
                detail.Unit   = model.Unit;
                detail.Symbol = model.Symbol;

                detail.LastUpdatedDateTime = DateTime.UtcNow;
                detail.LastUpdatedByUserId = _userManager.GetUserId(User);
            }

            if (model.IsPrimary)
            {
                detail.IsPrimary = model.IsPrimary;
                await _componentTypeDetailService.ResetPrimaryStatuses(detail);
            }

            await _componentTypeDetailService.SaveChangesAsync(detail);

            return(Redirect($"/Admin/ComponentType?componentTypeId={model.ComponentTypeId}"));
        }
예제 #4
0
        public async Task <bool> SaveChangesAsync(ComponentTypeDetail detail)
        {
            try
            {
                if (detail.Id == 0)
                {
                    await _context.AddAsync(detail);
                }
                else
                {
                    _context.Update(detail);
                }

                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #5
0
        public async Task <bool> ResetPrimaryStatuses(ComponentTypeDetail detail)
        {
            if (detail == null || detail.Id == 0)
            {
                return(false);
            }

            var details = _context.ComponentTypeDetails
                          .Where(x => x.ComponentTypeId == detail.ComponentTypeId && x.Id != detail.Id);

            await details.ForEachAsync(x => x.IsPrimary = false);

            try
            {
                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }