private static Address GetAddress(MongoDbCompany mongoDbCompany)
        {
            var result = default(Address);
            var mongoDbAddressesDataSource = new MongoDbAddressesDataSource();

            result = mongoDbAddressesDataSource.GetAddress(mongoDbCompany.AddressId);
            return(result);
        }
        public void SaveCompany(Company comapny)
        {
            if (comapny.Id == 0)
            {
                comapny.Id = NewId();

                var mongoDbAddressesDataSource = new MongoDbAddressesDataSource();
                var addrssId = mongoDbAddressesDataSource.SaveAddress(comapny.Address);
                comapny.Address.Id = addrssId;
            }

            var mongoDbCompany = new MongoDbCompany(comapny);

            mongoDbCompany.LastModified = DateTime.Now;

            var comapniesCollection = GetCompaniesCollection();

            comapniesCollection.Save(mongoDbCompany);
        }
        private Company ToCompany(MongoDbCompany mongoDbCompany)
        {
            var company = new Company();

            company.Id              = mongoDbCompany.Id;
            company.Name            = mongoDbCompany.Name;
            company.CompanyUserName = mongoDbCompany.CompanyUserName;


            var address = GetAddress(mongoDbCompany);

            company.Address              = new Address(address);
            company.Created              = mongoDbCompany.Created;
            company.LastModified         = mongoDbCompany.LastModified;
            company.RowStatus            = mongoDbCompany.RowStatus;
            company.AmountOfUsers        = mongoDbCompany.AmountOfUsers;
            company.AmountOfTasksPerUser = mongoDbCompany.AmountOfTasksPerUser;
            company.CompanyInfo          = mongoDbCompany.CompanyInfo;

            return(company);
        }