public async Task <IActionResult> Create(CreateFirmModel model)
        {
            var result = await this._firmService.CreateFirmAsync(model);

            if (result != null)
            {
                return(Ok(result));
            }

            return(BadRequest());
        }
        public async Task <IActionResult> CreateFirm(CreateFirmModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Geçersiz veri"));
            }

            // Sisteme kaydolacak her firma için bir klasör yaratılır/getirilir.
            var firmFolderFullpath = _firmService.GetOrCreateFirmFolder();

            // Firmanın logosu firmanın dizinine kaydedilir.
            var firmLogoPath = _firmService.SaveFirmLogo(model.Logo, firmFolderFullpath);

            // Firma için 'Firm' rolüne sahip bir yönetici kullanıcı oluşturulur.
            var user = new ApplicationUser
            {
                DateCreated          = DateTime.Now,
                IsActive             = true,
                Email                = model.Email,
                EmailConfirmed       = true,
                BranchId             = null,
                Name                 = model.Name,
                ImagePath            = null,
                NormalizedEmail      = model.Email,
                NormalizedUserName   = model.Email,
                UserName             = model.Email,
                PhoneNumber          = model.PhoneNumber,
                PhoneNumberConfirmed = true
            };

            await _userService.CreateUserAsync(user, model.Password, "Firm");

            // Firma nesnesi oluşturulur.
            var firm = new Firm
            {
                DateCreated = DateTime.Now,
                IsActive    = true,
                LogoPath    = firmLogoPath,
                Name        = model.Name,
                User        = user
            };

            await _firmService.CreateFirmAsync(firm);

            _logger.LogInformation(string.Format("{0} Firması ve #{1} Firma Kullanıcısı oluşturuldu.", firm.Name, user.Id));

            return(Ok("Firma oluşturuldu"));
        }
        public async Task <FirmDetailsModel> CreateFirmAsync(CreateFirmModel model)
        {
            var firm = new FirmEntityModel()
            {
                Address = model.Address,
                Name    = model.Name,
                Vat     = model.Vat
            };

            await this._data.Firms.AddAsync(firm);

            await this._data.SaveChangesAsync();

            var editedFirm = new FirmDetailsModel()
            {
                Address = firm.Address,
                Id      = firm.Id,
                Name    = firm.Name,
                Vat     = firm.Vat
            };

            return(editedFirm);
        }