public override async Task <GetSpecialistPackagesResponse> GetSpecialistPackages(GetSpecialistPackagesRequest request, ServerCallContext context)
        {
            DbUserModel user = context.UserState["user"] as DbUserModel;

            if (user == null)
            {
                return new GetSpecialistPackagesResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.UNAUTHORIZED)
                       }
            }
            ;

            // Search through all specialists for the search term.
            List <SpecialistPackageModel> results = (await SpecialistPackageModel.Search(request.SearchTerm)).Skip((int)request.PageNumber * 50).Take(50).ToList();

            GetSpecialistPackagesResponse response = new GetSpecialistPackagesResponse()
            {
                Status = ResponseFactory.createResponse(ResponseType.SUCCESS),
            };

            foreach (SpecialistPackageModel model in results)
            {
                response.SpecialistPackages.Add(model.SpecialistPackage);
            }

            return(response);
        }
        public override async Task <CreateSpecialistPackageResponse> CreateSpecialistPackage(CreateSpecialistPackageRequest request, ServerCallContext context)
        {
            DbUserModel user = context.UserState["user"] as DbUserModel;

            if (user == null)
            {
                return new CreateSpecialistPackageResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.UNAUTHORIZED)
                       }
            }
            ;

            // Set author
            request.SpecialistPackage.Creator = user.AsUser();
            SpecialistPackageModel packageModel = new SpecialistPackageModel(request.SpecialistPackage);
            await packageModel.SaveToDatabase();

            // Get the generated specialist ID
            string packageId = packageModel.SpecialistPackage.Id;

            return(new CreateSpecialistPackageResponse()
            {
                Status = ResponseFactory.createResponse(ResponseType.SUCCESS),
                SpecialistPackageId = packageId,
            });
        }