예제 #1
0
        public CompanyResponse Create(CompanyViewModel company)
        {
            CompanyResponse response = new CompanyResponse();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();

                SqliteCommand insertCommand = db.CreateCommand();
                insertCommand.CommandText = SqlCommandInsertPart;

                try
                {
                    insertCommand = AddCreateParameters(insertCommand, company);
                    insertCommand.ExecuteNonQuery();
                }
                catch (SqliteException error)
                {
                    response.Success = false;
                    response.Message = error.Message;
                    return(response);
                }
                db.Close();

                response.Success = true;
                return(response);
            }
        }
예제 #2
0
        public CompanyResponse Map(Company address)
        {
            if (address == null)
            {
                return(null);
            }
            ;

            CompanyResponse response = new CompanyResponse
            {
                Id            = address.Id,
                Name          = address.Name,
                Addition      = address.Addition,
                Addition2     = address.Addition2,
                Street        = address.Street,
                PostCode      = address.PostCode,
                City          = address.City,
                Email         = address.Email,
                Phone         = address.Phone,
                Fax           = address.Fax,
                VatId         = address.VatId,
                TimeZone      = address.TimeZone,
                ParentId      = (System.Guid)address.ParentId,
                Parent        = _addressMapper.Map(address.Parent),
                CountryId     = address.CountryId,
                Country       = _countryMapper.Map(address.Country),
                LogoId        = (System.Guid)address.LogoId,
                Logo          = _fagBinaryMapper.Map(address.Logo),
                CompanyTypeId = address.CompanyTypeId,
                CompanyType   = _companyTypeMapper.Map(address.CompanyType)
            };

            return(response);
        }
        public IActionResult Index(String CompanyId)
        {
            try
            {
                string companyId = CompanyId == null ? DEFAULT_COMPANY_ID: CompanyId;

                Debug.WriteLine(CompanyId);
                Debug.WriteLine(companyId);

                // Company vitals
                CompanyResponse result = essentialsApi.CompanyCountryCodeCompanyIdFormatGet("gb", companyId, RESPONSE_FORMAT);

                ViewData["companyId"]   = result.CompanyId;
                ViewData["countryCode"] = result.CountryCode;
                ViewData["name"]        = result.Name;
                ViewData["status"]      = result.SimplifiedStatus;
                ViewData["address"]     = result.RegisteredAddress.FullAddress;

                Debug.WriteLine(result);
            }
            catch (Exception e)
            {
                Debug.Print("Exception when calling EssentialsApi.CompanyCountryCodeCompanyIdFormatGet: " + e.Message);
            }

            return(View());
        }
예제 #4
0
        public CompanyResponse Delete(Guid identifier)
        {
            CompanyResponse response = new CompanyResponse();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();

                SqliteCommand insertCommand = new SqliteCommand();
                insertCommand.Connection = db;

                //Use parameterized query to prevent SQL injection attacks
                insertCommand.CommandText = "DELETE FROM Companies WHERE Identifier = @Identifier";
                insertCommand.Parameters.AddWithValue("@Identifier", identifier);

                try
                {
                    insertCommand.ExecuteNonQuery();
                }
                catch (SqliteException error)
                {
                    //MainWindow.ErrorMessage = error.Message;
                    response.Success = false;
                    response.Message = error.Message;
                    return(response);
                }
                db.Close();

                response.Success = true;
                return(response);
            }
        }
예제 #5
0
        /// <summary>
        /// Get shared companies based on the userId
        /// </summary>
        /// <param name="companyRequest"></param>
        /// <returns>CompanyResponse</returns>
        public CompanyResponse GetCompany(CompanyRequest companyRequest)
        {
            CompanyResponse      companyResponse = new CompanyResponse();
            List <CompanyModels> companyList     = new List <CompanyModels>();
            string query = string.Empty;

            try
            {
                if (companyRequest.UserId == 0)
                {
                    throw new ArgumentException("UserId");
                }

                query       = "SELECT c.Id [company_id], c.Name [company_name] FROM dbo.UserCompany uc JOIN dbo.CompanyClient cc ON uc.CompanyId=cc.OwnerCompany JOIN dbo.Company c ON c.Id = cc.ClientCompany WHERE uc.IsDefault=1 	AND uc.IsEnabled=1	AND uc.UserId="+ companyRequest.UserId + " 	AND cc.IsEnabled=1	and c.IsEnabled=1	AND cc.ClientCompany!=uc.CompanyId ";
                companyList = ReadCompanies(query);
                if (companyList != null)
                {
                    companyResponse.Companies = companyList;
                }
                else
                {
                    companyResponse.Error = ResponseBuilder.InternalError();
                    return(companyResponse);
                }
                return(companyResponse);
            }
            catch (Exception getCompanyException)
            {
                LambdaLogger.Log(getCompanyException.ToString());
                companyResponse.Error = new ExceptionHandler(getCompanyException).ExceptionResponse();
                return(companyResponse);
            }
        }
예제 #6
0
        public CompanyResponse DeleteAll()
        {
            CompanyResponse response = new CompanyResponse();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();

                SqliteCommand insertCommand = new SqliteCommand();
                insertCommand.Connection = db;

                //Use parameterized query to prevent SQL injection attacks
                insertCommand.CommandText = "DELETE FROM Companies";
                try
                {
                    insertCommand.ExecuteReader();
                }
                catch (SqliteException error)
                {
                    response.Success = false;
                    response.Message = error.Message;
                    return(response);
                }
                db.Close();

                response.Success = true;
                return(response);
            }
        }
예제 #7
0
        public async Task <CompanyResponse> UpdateCompany(CompanyResponse request)
        {
            var oldData = company.All().Single(x => x.ID == request.ID);

            if (request.PrimeContactID != null)
            {
                //if same eployee with diferent data
                if (request.PrimeContactID.Value == oldData.EmployeeID)
                {
                    var employee = AutoMapper.Mapper.Map <EmployeeResponse>(request);
                    await _employeeService.UpdateEmployee(employee);

                    AutoMapper.Mapper.Map(request, oldData);
                    company.SaveChanges();

                    return(await company.All().Where(x => x.ID == oldData.ID).ProjectTo <CompanyResponse>().SingleAsync());
                }

                //if existing employee
                await _companyEmployee.UpdateEmployeeToCompany(new Server.DataTransferModels.CompanyEmployee.
                                                               AddEmployeeToCompanyRequest
                {
                    CompanyID     = request.ID,
                    EmployeeID    = request.PrimeContactID.Value,
                    OldEmployeeID = oldData.EmployeeID
                });
            }

            //If is a new Employee
            if (request.PrimeContactID == null)
            {
                var req = AutoMapper.Mapper.Map <CreateEmployeeRequest>(request);

                var empResult = await _employeeService.CreateEmployee(req);

                if (!empResult.Success)
                {
                    return(new CompanyResponse {
                        Message = "Something went wrong"
                    });
                }

                await _companyEmployee.UpdateEmployeeToCompany(new Server.DataTransferModels.CompanyEmployee.
                                                               AddEmployeeToCompanyRequest
                {
                    CompanyID     = request.ID,
                    EmployeeID    = (empResult.Data as EmployeeResponse).ID,
                    OldEmployeeID = oldData.EmployeeID
                });

                request.PrimeContactID = (empResult.Data as EmployeeResponse).ID;
            }

            oldData.CompanyName = request.CompanyName;
            oldData.EmployeeID  = request.PrimeContactID.Value;
            company.SaveChanges();

            return(await company.All().Where(x => x.ID == oldData.ID).ProjectTo <CompanyResponse>().SingleAsync());
        }
예제 #8
0
        public void CheckException()
        {
            CompanyRequest companyRequest            = new CompanyRequest {
            };
            Mock <CompanyRepository> companyMock     = new Mock <CompanyRepository>();
            CompanyResponse          companyResponse = companyMock.Object.GetCompany(companyRequest);

            Assert.IsTrue(companyResponse.Error != null);
            Assert.IsTrue(companyResponse.Error.Message == "Invalid input :UserId");
        }
예제 #9
0
        public async Task <IActionResult> Post([FromBody] CompanyResponse request)
        {
            var duplicateRecord = await _service.GetSingle(q => q.email == request.email);

            if (duplicateRecord != null)
            {
                return(Conflict(new { message = "آدرس پست الکترونیک قبلا به ثبت رسیده است" }));
            }

            duplicateRecord = await _service.GetSingle(q => q.subdomain == request.subdomain);

            if (duplicateRecord != null)
            {
                return(Conflict(new { message = "عنوان زیردامنه قبلا به ثبت رسیده است" }));
            }

            var result = await _service.AddRecord(request);

            if (result == null)
            {
                return(NotFound(new { message = "شرکت ثبت نشده است" }));
            }
            var adminUser = new MemberResponse
            {
                membername = "مدیریت",
                password   = new Password(true, true, true,
                                          true, 21).Next(),
                roles       = "admin",
                email       = request.email,
                companyid   = request.id,
                allowdelete = false,
                disabled    = false
            };
            await _memberService.AddRecord(adminUser, request.id);

            _emailService.Send(new EmailMessage
            {
                Subject = "میز کار خدمات رایانه ای AiKi",
                Content =
                    $"<p dir='rtl' style='font-family:tahoma'> با سلام </br> رمز عبور شما جهت ورود به میزکار خدمات رایانه ای عبارت است از: <span dir='ltr'><b>{adminUser.password}</b></span> <br/> جهت ورود <a href='https://aiki-helpdesk-v1.firebaseapp.com/'>اینجا</a> کلیک نمایید</p>",
                FromAddresses = new List <EmailAddress>
                {
                    new EmailAddress {
                        Name = "Mohammad Mehrnia", Address = "*****@*****.**"
                    }
                },
                ToAddresses = new List <EmailAddress> {
                    new EmailAddress {
                        Name = request.title, Address = request.email
                    }
                }
            });
            return(CreatedAtAction(nameof(Post), request));
        }
예제 #10
0
        public async Task <CompanyResponse> Get(string companyId)
        {
            var readModel = await QueryProcessor.ProcessAsync(
                new CompanyGetQuery(new CompanyId(companyId)), CancellationToken.None)
                            .ConfigureAwait(false);

            var response = new CompanyResponse {
                TenantId = readModel.TenantId, Id = readModel.Id.GetGuid().ToString(), Name = readModel.Name, Address = readModel.Address, CreatedDate = readModel.CreatedDate, ModifiedDate = readModel.ModifiedDate, IsDeleted = readModel.IsDeleted
            };

            return(response);
        }
예제 #11
0
        public void CheckInternalServer()
        {
            CompanyRequest companyRequest = new CompanyRequest {
                UserId = 10
            };
            List <CompanyModels>     companyList = null;
            Mock <CompanyRepository> companyMock = new Mock <CompanyRepository>();

            companyMock.Setup(r => r.ReadCompanies(It.IsAny <string>())).Returns(companyList);
            CompanyResponse companyResponse = companyMock.Object.GetCompany(companyRequest);

            Assert.IsTrue(companyResponse.Error.Message == "System Error");
        }
예제 #12
0
        public void GetCompanyDetails()
        {
            CompanyRequest companyRequest = new CompanyRequest {
                UserId = 10
            };
            var companyList = CreateCompanyList();
            Mock <CompanyRepository> companyMock = new Mock <CompanyRepository>();

            companyMock.Setup(r => r.ReadCompanies(It.IsAny <string>())).Returns(companyList);
            CompanyResponse companyResponse = companyMock.Object.GetCompany(companyRequest);

            Assert.IsTrue(companyResponse.Companies.Count > 0);
            Assert.IsTrue(companyResponse.Error == null);
        }
예제 #13
0
        public async Task <IHttpActionResult> InsertCompanyAsync(CompanyRequest request)
        {
            var response = new CompanyResponse();

            var accountId = Identity.ToAccountID();

            request.CompanyViewModel.AccountId = accountId;

            await _companyService.InsertCompanyAsync(request.CompanyViewModel);

            response.StatusCode = (int)HttpStatusCode.OK;

            return(Ok(response));
        }
예제 #14
0
        /// <summary>
        ///  Get the list of companies based on the userId
        /// </summary>
        /// <param name="companyRequest"></param>
        /// <param name="context"></param>
        /// <returns>CompanyResponse</returns>
        public CompanyResponse GetCompany(CompanyRequest companyRequest, ILambdaContext context = null)
        {
            CompanyRepository companyRepository = new CompanyRepository();
            CompanyResponse   companyResponse   = new CompanyResponse();

            try
            {
                return(companyRepository.GetCompany(companyRequest));
            }
            catch (Exception getCompanyException)
            {
                LambdaLogger.Log(getCompanyException.ToString());
                companyResponse.Error = ResponseBuilder.InternalError();
                return(companyResponse);
            }
        }
예제 #15
0
        public CompanyResponse GetCompany(string companyId)
        {
            if (string.IsNullOrWhiteSpace(companyId))
            {
                return(null);
            }

            var fullUrl = $"{ BaseURL }/companies/v2/companies/{companyId}"
                          .SetQueryParam("hapikey", ApiKey);

            string response = RequestController.GetResponse(fullUrl);

            var company = CompanyResponse.FromJson(response);

            return(company);
        }
예제 #16
0
        ///<summary>
        /// Gets new code for business partner creation
        ///</summary>
        ///<returns></returns>
        public CompanyResponse GetNewCodeValue()
        {
            CompanyResponse response = new CompanyResponse();

            try
            {
                response = WpfApiHandler.GetFromApi <CompanyViewModel, CompanyResponse>("GetNewCodeValue", null);
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
예제 #17
0
        public void TestAirTableClientStringBuilding()
        {
            LeadResponse leadResponse = new LeadResponse();
            Lead         lead         = new Lead();

            leadResponse.Lead = lead;
            ContactResponse contactResponse = new ContactResponse();
            Contact         contact         = new Contact();

            contactResponse.Contact = contact;
            DealResponse dealResponse = new DealResponse();
            Deal         deal         = new Deal();

            dealResponse.Deal = deal;
            CompanyResponse companyResponse = new CompanyResponse();
            Company         company         = new Company();

            companyResponse.Company = company;

            Assert.IsTrue(string.IsNullOrEmpty(deal.AirTableClientString));
            Assert.IsTrue(string.IsNullOrEmpty(lead.AirTableClientString));

            lead.NAME  = "Alex";
            lead.PHONE = new List <PHONE> {
                new PHONE()
                {
                    VALUE = "123"
                }
            };

            Assert.AreEqual(lead.AirTableClientString, "Alex (123)");

            deal.Contact  = contactResponse;
            contact.NAME  = "Alex";
            contact.PHONE = new List <PHONE> {
                new PHONE {
                    VALUE = "123"
                }
            };

            Assert.AreEqual(deal.AirTableClientString, "Alex (123)");

            deal.Company  = companyResponse;
            company.TITLE = "Company";

            Assert.AreEqual(deal.AirTableClientString, "Company Alex (123)");
        }
예제 #18
0
        public async Task <IActionResult> Post([FromBody] CompanyResponse request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { model = ModelState, message = "خطا در ویرایش اطلاعات" }));
            }
            var duplicateRecord = await _memberService.GetSingle(q => q.username == request.email);

            if (duplicateRecord != null)
            {
                return(BadRequest("نام کاربری تکراری است"));
            }
            var result = await _service.AddRecord(request);

            var adminUser = new MemberResponse
            {
                membername  = "مدیریت",
                password    = new Password(includeLowercase: true, includeUppercase: true, includeNumeric: true, includeSpecial: true, passwordLength: 21).Next(),
                roles       = "admin",
                email       = request.email,
                companyid   = request.id,
                allowdelete = false,
                disabled    = false
            };
            await _memberService.AddRecord(adminUser, request.id);

            _emailService.Send(new EmailMessage
            {
                Subject       = "میز کار خدمات رایانه ای AiKi",
                Content       = $"<p dir='rtl' style='font-family:tahoma'> با سلام </br> رمز عبور شما جهت ورود به میزکار خدمات رایانه ای عبارت است از: <span dir='ltr'><b>{adminUser.password}</b></span> <br/> جهت ورود <a href='https://aiki-helpdesk-v1.firebaseapp.com/'>اینجا</a> کلیک نمایید</p>",
                FromAddresses = new List <EmailAddress>()
                {
                    new EmailAddress()
                    {
                        Name = "Mohammad Mehrnia", Address = "*****@*****.**"
                    }
                },
                ToAddresses = new List <EmailAddress>()
                {
                    new EmailAddress()
                    {
                        Name = request.title, Address = request.email
                    }
                },
            });
            return(CreatedAtAction(nameof(Post), request));
        }
예제 #19
0
        public CompanyResponse Create(CompanyViewModel company)
        {
            CompanyResponse response = new CompanyResponse();

            try
            {
                response         = WpfApiHandler.SendToApi <CompanyViewModel, CompanyResponse>(company, "Create");
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
예제 #20
0
        /// <summary>
        /// Gets new code for company addition
        /// </summary>
        /// <returns></returns>
        public CompanyResponse GetNewCodeValue()
        {
            CompanyResponse response = new CompanyResponse();

            try
            {
                response.NewCode = unitOfWork.GetCompanyRepository().GetNewCodeValue();
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Company = new CompanyViewModel();
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
        public JsonResult GetCompany(int id)
        {
            CompanyResponse response = new CompanyResponse();

            try
            {
                response = companyService.GetCompany(id);
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
                response.Success = false;
            }

            return(Json(response, new JsonSerializerSettings()
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            }));
        }
예제 #22
0
        public CompanyResponse Delete(int id)
        {
            CompanyResponse response = new CompanyResponse();

            try
            {
                CompanyViewModel viewModel = new CompanyViewModel();
                viewModel.Id     = id;
                response         = WpfApiHandler.SendToApi <CompanyViewModel, CompanyResponse>(viewModel, "Delete");
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
예제 #23
0
        /// <summary>
        /// Get single active Company by id from database
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public CompanyResponse GetCompany(int id)
        {
            CompanyResponse response = new CompanyResponse();

            try
            {
                response.Company = unitOfWork.GetCompanyRepository().GetCompany(id)
                                   .ConvertToCompanyViewModel();
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Company = null;
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
예제 #24
0
        public async Task <IHttpActionResult> UpdateCompanyAsync(CompanyRequest request)
        {
            var response = new CompanyResponse();

            var accountId = Identity.ToAccountID();

            if (request.CompanyViewModel.AccountId != accountId)
            {
                response.ErrorMessage = "Not permissions";
                response.StatusCode   = (int)HttpStatusCode.Forbidden;
            }
            else
            {
                await _companyService.UpdateCompanyAsync(request.CompanyViewModel);

                response.StatusCode = (int)HttpStatusCode.OK;
            }

            return(Ok(response));
        }
        public JsonResult GetNewCodeValue()
        {
            CompanyResponse response = new CompanyResponse();

            try
            {
                response         = companyService.GetNewCodeValue();
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
                Console.WriteLine(ex.Message);
            }
            return(new JsonResult(response, new Newtonsoft.Json.JsonSerializerSettings()
            {
                Formatting = Newtonsoft.Json.Formatting.Indented
            }));
        }
예제 #26
0
        /// <summary>
        /// Get single active Company by id from database
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public CompanyResponse GetCompany(int id)
        {
            CompanyResponse response = new CompanyResponse();

            try
            {
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add("ID", id.ToString());


                response.Company = WpfApiHandler.GetFromApi <CompanyViewModel>("GetCompany", parameters);
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
예제 #27
0
        public CompanyResponse getCompany(int id)
        {
            var company = _context.Companies.FirstOrDefault(x => x.id == id);

            if (company != null)
            {
                var companyResponse = new CompanyResponse()
                {
                    id            = company.id,
                    name          = company.name,
                    address       = company.address,
                    logoUrl       = company.logoUrl,
                    mail          = company.mail,
                    personelCount = company.personelCount,
                    telephone     = company.telephone
                };
                return(companyResponse);
            }

            return(null);
        }
예제 #28
0
        public void CreateCompany()
        {
            var repository  = new Mock <IRepository <Company> >();
            var empService  = new Mock <IEmployeeService>();
            var compEmplSer = new Mock <ICompanyEmployeeService>();
            var compService = new Mock <ICompanyService>();

            var service = new CompanyService(repository.Object, empService.Object, compEmplSer.Object);
            var company = new CreateCompanyRequest {
                CompanyName = "Test", PrimeContactID = 2, IsLive = true
            };
            var companyResponse = new CompanyResponse {
                CompanyName = "Test", IsLive = true
            };

            compService.Setup(r => r.CreateCompany(company)).ReturnsAsync(companyResponse);

            var result = service.CreateCompany(company);

            Assert.That(result, Is.Not.Null);
        }
예제 #29
0
파일: Class1.cs 프로젝트: liuwei0925/myPrj
        //9.1.1	查询集团
        public string QueryCompany(QChat_Query qchat)
        {
            QchatQEDService qqs = new QchatQEDService();

            qqs = getQchatQEDService(qchat.username, qchat.password, qchat.deviceID, qchat.urlIp);

            //查询参数
            QueryRequest queryRequest = new QueryRequest();

            queryRequest.mainParam = qchat.mainParam; //"xghcnc933731"; //为管理员名称
            queryRequest.pageSize  = qchat.pageSize;  //10; //查询条数,默认为10
            queryRequest.startPos  = qchat.startPos;  //0; //起始位置
            QedRequest qedr = new QedRequest();

            qedr.queryRequest = queryRequest;

            QedResponse     response        = qqs.queryCompany(qedr);
            CompanyResponse companyResponse = response.companyResponse;
            StringBuilder   sb = new StringBuilder();

            if (companyResponse != null && companyResponse.companyInfo != null)
            {
                sb.AppendLine("adminCount:" + companyResponse.companyInfo.adminCount.ToString());
                sb.AppendLine("companyName:" + companyResponse.companyInfo.companyName.ToString());
                sb.AppendLine("groupCount:" + companyResponse.companyInfo.groupCount.ToString());
                sb.AppendLine("userCount:" + companyResponse.companyInfo.userCount.ToString());
                sb.AppendLine("Response:" + companyResponse.response.description.ToString());
                sb.AppendLine("reserve:" + companyResponse.response.reserve);
                sb.AppendLine("returnCode:" + companyResponse.response.returnCode);
            }
            else
            {
                sb.AppendLine("返回信息为null");
            }
            Console.WriteLine(sb);
            //Console.ReadKey();

            return(sb.ToString());
        }
예제 #30
0
        /// <summary>
        /// Deactivate Company by id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public CompanyResponse Delete(int id)
        {
            CompanyResponse response = new CompanyResponse();

            try
            {
                response.Company = unitOfWork.GetCompanyRepository().Delete(id)
                                   .ConvertToCompanyViewModel();
                unitOfWork.Save();

                //var resp = FirebaseHelper.Send<CompanyViewModel>("Companies", response.Company);
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Company = null;
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response);
        }