예제 #1
0
        public async static Task <PostResultModel> PostEmpresaBindingModel(this IEntityService <Empresa> service, PostEmpresaBindingModel model, ProfileMongoModel user)
        {
            var empresaResult = await service.GetEmpresasByDocumentoAsync(new GetEmpresasByDocumento { CNPJ = model.CNPJ });

            if (empresaResult.IsValid)
            {
                return(new PostResultModel {
                    IsValid = false, Message = string.Format("Já existe uma empresa com o CNPJ {0} informado.", model.CNPJ), StatusCode = 400
                });
            }

            var entity = model.CreateInstanceOf <Empresa>(user.UsuarioId);

            entity.Modulo = EnumUtility.GetEnumText(Modulo.Gestor);
            var entityId = await service.AddAsync(entity);

            var mongoObj = entity.CreateInstanceOf <EmpresaClienteMongoModel>();

            model.CopyProperties(mongoObj);
            mongoObj.ParentId = entityId.ToString();
            var mongoId = await service.MongoService.InsertMongoObject <EmpresaClienteMongoModel>(mongoObj);

            var result = new PostResultModel {
                Id = mongoId, IsValid = true, ParentId = mongoObj.ParentId, StatusCode = 200
            };

            return(result);
        }