コード例 #1
0
        public async Task NoContent()
        {
            var db = AddDbContext();

            db.Add(new Company {
                CompanyId = 1, Status = CompanyStatus.Active
            });
            db.SaveChanges();
            var controller = GetController(1);
            var request    = new SaveCompanyRequest().SetStringProperties();
            var result     = await controller.Save(1, request);

            Assert.IsType <NoContentResult>(result);
            db = Db;
            var company = db.Companies.Single();

            Assert.Equal(request.Name, company.Name);
            Assert.Equal(request.UniqueName, company.UniqueName);
            Assert.Equal(CompanyStatus.Active, company.Status);
        }
コード例 #2
0
        public async Task Ok()
        {
            AddDbContext();
            var controller = GetController(1);
            var request    = new SaveCompanyRequest().SetStringProperties();
            var result     = await controller.Create(request);

            var ok = Assert.IsType <OkObjectResult>(result);

            Assert.Equal(1, ok.Value);
            var db      = Db;
            var company = db.Companies.Single();

            Assert.Equal(request.Name, company.Name);
            Assert.Equal(request.UniqueName, company.UniqueName);
            Assert.Equal(CompanyStatus.Active, company.Status);
            var user = db.CompanyUsers.Single();

            Assert.Equal(1, user.UserId);
        }
コード例 #3
0
        public BaseResponse <Entity.SaveCompanyResponse> SaveCompany(SaveCompanyRequest requestData)
        {
            var response = new BaseResponse <Entity.SaveCompanyResponse>(true);

            try
            {
                var apiResponse = _service.SaveCompany(requestData);
                response.Data = apiResponse.Data;
                if (!apiResponse.Success)
                {
                    response.IsSuccess = false;
                    response.Message   = apiResponse.Message;
                }
            }
            catch (Exception ex)
            {
                return(new BaseResponse <Entity.SaveCompanyResponse>(false, ex.Message));
            }

            return(response);
        }
コード例 #4
0
        public async Task <IActionResult> Create([FromBody] SaveCompanyRequest request)
        {
            if (await db.Companies.AnyAsync(x => x.UniqueName == request.UniqueName))
            {
                return(this.BadRequest(nameof(SaveCompanyRequest.UniqueName), UniqueNameNotUnique));
            }
            var company = new Company
            {
                Name            = request.Name,
                UniqueName      = request.UniqueName,
                CreatedAt       = DateTime.Now,
                Status          = CompanyStatus.Active,
                Logo            = request.Logo,
                LogoContentType = request.LogoContentType
            };

            db.Add(company);
            var userId      = this.GetUserId();
            var companyUser = new CompanyUser
            {
                Company    = company,
                UserId     = userId,
                IsFavorite = true
            };

            db.Add(companyUser);
            foreach (var type in (CompanyUserPermissionType[])Enum.GetValues(typeof(CompanyUserPermissionType)))
            {
                db.CompanyUserPermissions.Add(new CompanyUserPermission
                {
                    Type        = type,
                    CompanyUser = companyUser,
                    IsSet       = true,
                });
            }
            await db.SaveChangesAsync();

            return(Ok(company.CompanyId));
        }
コード例 #5
0
        public async Task <IActionResult> Save(int companyId, [FromBody] SaveCompanyRequest request)
        {
            var company = await db.Companies.SingleOrDefaultAsync(x => x.CompanyId == companyId);

            if (!string.Equals(company.UniqueName, request.UniqueName, StringComparison.OrdinalIgnoreCase) &&
                await db.Companies.AnyAsync(x => x.UniqueName == request.UniqueName))
            {
                return(this.BadRequest(nameof(SaveCompanyRequest.UniqueName), UniqueNameNotUnique));
            }
            company.Name       = request.Name;
            company.UniqueName = request.UniqueName;

            if (request.Logo != null && request.Logo.Length > 0)
            {
                company.Logo            = request.Logo;
                company.LogoContentType = request.LogoContentType;
            }

            await db.SaveChangesAsync();

            return(NoContent());
        }
コード例 #6
0
 protected override void Given()
 {
     _request = new SaveCompanyRequest()
     {
     };
 }