public TypeOfCompanyViewModel DestroyTypeOfCompany(TypeOfCompanyViewModel typeOfCompany)
        {
            this.Data.TypeOfCompanies.Delete(typeOfCompany.Id);
            this.Data.SaveChanges();

            return typeOfCompany;
        }
        public JsonResult DestroyTypeOfCompany([DataSourceRequest] DataSourceRequest request, TypeOfCompanyViewModel typeOfCompany)
        {
            var deletedTypeOfCompany = this.typeOfCompanies.DestroyTypeOfCompany(typeOfCompany);

            var loggedUserId = this.User.Identity.GetUserId();
            Base.CreateActivity(ActivityType.Delete, deletedTypeOfCompany.Id.ToString(), ActivityTargetType.TypeOfCompany, loggedUserId);

            return Json(new[] { typeOfCompany }, JsonRequestBehavior.AllowGet);
        }
        public JsonResult CreateTypeOfCompany([DataSourceRequest]  DataSourceRequest request, TypeOfCompanyViewModel typeOfCompany)
        {
            if (typeOfCompany == null || !ModelState.IsValid)
            {
                return Json(new[] { typeOfCompany }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
            }

            var createdTypeOfCompany = this.typeOfCompanies.CreateTypeOfCompany(typeOfCompany);

            var loggedUserId = this.User.Identity.GetUserId();
            Base.CreateActivity(ActivityType.Create, createdTypeOfCompany.Id.ToString(), ActivityTargetType.TypeOfCompany, loggedUserId);

            typeOfCompany.Id = createdTypeOfCompany.Id;

            return Json(new[] { typeOfCompany }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }
        public TypeOfCompanyViewModel CreateTypeOfCompany(TypeOfCompanyViewModel typeOfCompany)
        {
            if (typeOfCompany == null)
            {
                return typeOfCompany;
            }

            var newTypeOfCompany = new TypeOfCompany
            {
                Type = typeOfCompany.Type,
                TypeInBulgarian = typeOfCompany.TypeInBulgarian
            };

            this.Data.TypeOfCompanies.Add(newTypeOfCompany);
            this.Data.SaveChanges();

            typeOfCompany.Id = newTypeOfCompany.Id;

            return typeOfCompany;
        }
        public TypeOfCompanyViewModel UpdateTypeOfCompany(TypeOfCompanyViewModel typeOfCompany)
        {
            var typeOfCompanyFromDb = this.Data.TypeOfCompanies.All()
                   .FirstOrDefault(p => p.Id == typeOfCompany.Id);

            if (typeOfCompany == null || typeOfCompanyFromDb == null)
            {
                return typeOfCompany;
            }

            typeOfCompanyFromDb.Type = typeOfCompany.Type;
            typeOfCompanyFromDb.TypeInBulgarian = typeOfCompany.TypeInBulgarian;

            this.Data.SaveChanges();

            return typeOfCompany;
        }