Пример #1
0
 private void CreateResourceFromInputData()
 {
     resource = new Models.Resource();
     resource.isMainResource = "1";
     resource.idMemberATE    = MemberATE.idAccount.ToString();
     resource.idService      = "0";
 }
 private void InitializeService()
 {
     GetCity();
     if (city != null)
     {
         GetState();
         if (state != null)
         {
             resource = GetResource(Service.idService);
             GetImage();
             LabelName.Content           = Service.name;
             LabelSlogan.Content         = Service.slogan;
             LabelType.Content           = Service.typeService;
             LabelCost.Content           = "De: " + Service.minimalCost.ToString() + " Hasta: " + Service.maximumCost.ToString();
             TextBlockState.Text         = state.name;
             TextBlockCity.Text          = city.name;
             TextBlockDescription.Text   = Service.description;
             TextBlockWorkingHours.Text  = Service.workingHours;
             ButtonEditService.IsEnabled = true;
             ImageService.Source         = image;
             if (Service.serviceStatus == Number.NumberValue(NumberValues.ONE))
             {
                 ButtonDeleteService.IsEnabled = true;
             }
         }
     }
 }
Пример #3
0
        private void ImageItemsControlMouseDoubleClicked(object listBoxImages, System.Windows.Input.MouseButtonEventArgs mouseButtonEventArgs)
        {
            int itemSelect = ((ListView)listBoxImages).SelectedIndex;

            if (itemSelect >= Number.NumberValue(NumberValues.ZERO) && itemSelect < resources.Count)
            {
                MessageBoxResult messageBoxResult = MessageBox.Show("¿Seguro que desea eliminar este recurso?",
                                                                    "Confirmación", MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (messageBoxResult == MessageBoxResult.Yes)
                {
                    Models.Resource resourceSelect = resources[itemSelect];
                    if (!object.ReferenceEquals(null, resourceSelect))
                    {
                        if (resourceSelect.isMainResource.Equals("0"))
                        {
                            DeleteResource(resourceSelect.routeSave);
                        }
                        else
                        {
                            MessageBox.Show("Este recurso es el principal solo se puede eliminar al editar servicio", "Recurso principal", MessageBoxButton.OK, MessageBoxImage.Warning);
                        }
                    }
                }
            }
        }
Пример #4
0
 public void InitializeMenu()
 {
     TextBlockTitle.Text = "!Bienvenido Usuario " + Login.loginAccount.username + "!";
     GetCity();
     if (city != null)
     {
         GetState();
         if (state != null)
         {
             resource = GetResource(ServiceChoose.idService);
             GetImage();
             LabelName.Content          = ServiceChoose.name;
             LabelSlogan.Content        = ServiceChoose.slogan;
             LabelType.Content          = ServiceChoose.typeService;
             TextBlockState.Text        = state.name;
             TextBlockCity.Text         = city.name;
             LabelCost.Content          = "De: " + ServiceChoose.minimalCost.ToString() + " Hasta: " + ServiceChoose.maximumCost.ToString();
             TextBlockDescription.Text  = ServiceChoose.description;
             TextBlockWorkingHours.Text = ServiceChoose.workingHours;
             ImageService.Source        = image;
             ButtonReport.IsEnabled     = true;
             ButtonRequest.IsEnabled    = true;
         }
     }
 }
Пример #5
0
        public static int AddResource(Models.Resource resource)
        {
            int    id  = 0;
            string sql = @"INSERT INTO resource
                        (Name,
                        Path,
                        Tip,
                        Type,
                        CreateTime,
                        Creator,
                        IsDelete)
                        VALUES
                        (@Name,
                        @Path,
                        @Tip,
                        @Type,
                        @CreateTime,
                        @Creator,
                        0);select @@IDENTITY";

            using (IDbConnection conn = DBHelper.OpenConnection())
            {
                id = conn.Query <int>(sql, resource).FirstOrDefault();
            }
            return(id);
        }
Пример #6
0
        public void InitializeMenu()
        {
            TextBlockTitle.Text = "!Bienvenido Usuario " + Login.loginAccount.username + "!";
            TextBoxName.Text    = Request.idMemberATE;
            TextBoxAddress.Text = Request.address;
            TextBoxTime.Text    = Request.time;
            DateTime date          = DateTime.ParseExact(Request.date, "yyyy/MM/dd", null);
            string   dateConverted = date.ToString("dd/MM/yyyy");

            TextBoxDate.Text    = dateConverted;
            TextBoxTrouble.Text = Request.trouble;
            Models.Resource resource = GetResource();
            if (resource.routeSave != null)
            {
                GetImage(resource.routeSave);
                ImageMember.Source       = image;
                PackIconImage.Visibility = Visibility.Hidden;
                ImageMember.Visibility   = Visibility.Visible;
            }
            if (Request.requestStatus == Number.NumberValue(NumberValues.THREE) || Request.requestStatus == Number.NumberValue(NumberValues.FOUR))
            {
                ButtonQualifyClient.Visibility = Visibility.Hidden;
                ButtonCancelRequest.Visibility = Visibility.Hidden;
            }
            else
            {
                if (Request.requestStatus == Number.NumberValue(NumberValues.FIVE))
                {
                    ButtonCancelRequest.Visibility = Visibility.Hidden;
                }
            }
        }
Пример #7
0
        public ActionResult Create([DataSourceRequest] DataSourceRequest request, Models.Resource resource)
        {
            if (resource != null && ModelState.IsValid)
            {
                resource.ResourceID = _resourceRepository.Create(resource);
            }

            return(Json(new[] { resource }.ToDataSourceResult(request, ModelState)));
        }
Пример #8
0
        private void CreateButton_Click(object sender, System.EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(titleTextBox.Text))
            {
                System.Windows.Forms.MessageBox.Show("Title is required!");
                return;
            }

            if (string.IsNullOrWhiteSpace(authorTextBox.Text))
            {
                System.Windows.Forms.MessageBox.Show("Author is required!");
                return;
            }

            if (string.IsNullOrWhiteSpace(publishYearTextBox.Text))
            {
                System.Windows.Forms.MessageBox.Show("Publish year is required!");
                return;
            }

            Models.DatabaseContext databaseContext = null;

            try
            {
                databaseContext =
                    new Models.DatabaseContext();

                Models.Resource resource = new Models.Resource
                {
                    Title       = titleTextBox.Text,
                    Author      = authorTextBox.Text,
                    Translator  = translatorTextBox.Text,
                    Description = descriptionTextBox.Text,
                    Type        = (Models.Enums.ResourceType)typeComboBox.SelectedValue,
                    PublishYear = System.Convert.ToInt32(publishYearTextBox.Text),
                };

                databaseContext.Resources.Add(resource);

                databaseContext.SaveChanges();

                System.Windows.Forms.MessageBox
                .Show("Resource created successfully...");
            }
            catch (System.Exception ex)
            {
                System.Windows.Forms.MessageBox.Show($"Error: { ex.Message }");
            }
            finally
            {
                if (databaseContext != null)
                {
                    databaseContext.Dispose();
                    //databaseContext = null;
                }
            }
        }
Пример #9
0
 public ResourceViewModel(Models.Resource resource)
 {
     Id               = resource.Id;
     Name             = resource.Name;
     Description      = resource.Description;
     PublishDateBegin = resource.PublishDateBegin;
     PublishDateEnd   = resource.PublishDateEnd;
     MediaUrl         = resource.MediaUrl;
     ResourceUrl      = resource.ResourceUrl;
     CategoryTag      = resource.CategoryTag;
 }
Пример #10
0
        public void Update(Models.Resource resource)
        {
            var target = _entities.Resources.Where(p => p.ResourceID == resource.ResourceID).FirstOrDefault();

            if (target != null)
            {
                target.ResourceName   = resource.ResourceName;
                target.Comments       = resource.Comments;
                target.ResourceTypeID = resource.ResourceType.ResourceTypeID;

                _entities.SaveChanges();
            }
        }
Пример #11
0
        public int Create(Models.Resource resource)
        {
            var target = new Data.Resource {
                ResourceName   = resource.ResourceName,
                Comments       = resource.Comments,
                ResourceTypeID = resource.ResourceType.ResourceTypeID,
            };

            var result = _entities.Resources.Add(target);

            _entities.SaveChanges();

            return(result.ResourceID);
        }
Пример #12
0
        public async Task SaveVideo(Models.Resource resource, Uri uri)
        {
            try
            {
                var client = await GetClient();

                var credential = _mediaCredential.Value;

                var contentAddress = new ContentAddress(resource.ContentAddress);
                var sourceName     = $"raw-{contentAddress.ContainerName}";

                Asset asset = await client.Assets.GetAsync(credential.ResourceGroup, credential.AccountName, sourceName);

                if (asset != null)
                {
                    await client.Assets.DeleteAsync(credential.ResourceGroup, credential.AccountName, sourceName);

                    await Task.Delay(TimeSpan.FromSeconds(60));
                }
                //do
                //{
                //    asset = await client.Assets.GetAsync(credential.ResourceGroup, credential.AccountName, sourceName);
                //} while (asset != null);

                asset = await client.Assets.CreateOrUpdateAsync(credential.ResourceGroup, credential.AccountName,
                                                                sourceName, new Asset(name : sourceName, container : sourceName));

                var response = await client.Assets.ListContainerSasAsync(
                    credential.ResourceGroup,
                    credential.AccountName,
                    asset.Name,
                    permissions : AssetContainerPermission.ReadWrite,
                    expiryTime : DateTime.UtcNow.AddHours(4).ToUniversalTime());

                var sasUri = new Uri(response.AssetContainerSasUrls.First());
                CloudBlobContainer container = new CloudBlobContainer(sasUri);
                var blob = container.GetBlockBlobReference(Path.GetFileName(resource.Filename));

                // Use Strorage API to upload the file into the container in storage.
                await blob.StartCopyAsync(uri);
            }
            catch (Exception ex)
            {
                if (ex.Message.ToLower().Contains("pending"))
                {
                    throw new PendingException($"Pending copying {uri}");
                }
                throw ex;
            }
        }
Пример #13
0
        private void DisplayResourceForm_Load(object sender, System.EventArgs e)
        {
            typeComboBox.DataSource =
                System.Enum.GetValues(typeof(Models.Enums.ResourceType));

            Models.DatabaseContext databaseContext = null;

            try
            {
                databaseContext =
                    new Models.DatabaseContext();

                Models.Resource resource =
                    databaseContext.Resources
                    .Where(current => current.Id == Id)
                    .FirstOrDefault();

                if (resource == null)
                {
                    System.Windows.Forms.MessageBox.Show("There is not resource any more!");
                    Close();
                }

                resource.VisitCount++;

                databaseContext.SaveChanges();

                titleTextBox.Text       = resource.Title;
                authorTextBox.Text      = resource.Author;
                translatorTextBox.Text  = resource.Translator;
                descriptionTextBox.Text = resource.Description;
                publishYearTextBox.Text = resource.PublishYear.ToString();

                //typeComboBox.SelectedText = resource.Type.ToString();
                typeComboBox.SelectedItem = (Models.Enums.ResourceType)resource.Type;
            }
            catch (System.Exception ex)
            {
                System.Windows.Forms.MessageBox.Show($"Error: { ex.Message }");
            }
            finally
            {
                if (databaseContext != null)
                {
                    databaseContext.Dispose();
                    //databaseContext = null;
                }
            }
        }
Пример #14
0
        public async Task <Job> GetJob(Models.Resource resource)
        {
            var client = await GetClient();

            var credential = _mediaCredential.Value;

            var    contentAddress = new ContentAddress(resource.ContentAddress);
            string jobName        = $"job-{contentAddress.ContainerName}";

            var job = await client.Jobs.GetAsync(
                credential.ResourceGroup,
                credential.AccountName,
                TRANSFORM_NAME,
                jobName);

            return(job);
        }
 public void InitializeService()
 {
     if (Service.serviceStatus == Number.NumberValue(NumberValues.ONE))
     {
         ButtonBlock.Visibility  = Visibility.Visible;
         ButtonUnlock.Visibility = Visibility.Hidden;
     }
     else
     {
         if (Service.serviceStatus == Number.NumberValue(NumberValues.TWO))
         {
             ButtonBlock.Visibility  = Visibility.Hidden;
             ButtonUnlock.Visibility = Visibility.Hidden;
         }
         else
         {
             ButtonBlock.Visibility  = Visibility.Hidden;
             ButtonUnlock.Visibility = Visibility.Visible;
         }
     }
     GetCity();
     if (city != null)
     {
         GetState();
         if (state != null)
         {
             resource = GetResource();
             if (resource.routeSave != null)
             {
                 GetImage();
                 ImageService.Source      = image;
                 PackIconImage.Visibility = Visibility.Hidden;
                 ImageService.Visibility  = Visibility.Visible;
             }
             TextBoxName.Text         = Service.name;
             TextBoxSlogan.Text       = Service.slogan;
             TextBoxType.Text         = Service.typeService;
             TextBoxState.Text        = state.name;
             TextBoxCity.Text         = city.name;
             TextBoxCost.Text         = "De: " + Service.minimalCost.ToString() + " Hasta: " + Service.maximumCost.ToString();
             TextBoxDescription.Text  = Service.description;
             TextBoxWorkingHours.Text = Service.workingHours;
         }
     }
 }
Пример #16
0
        private Models.Resource GetResource(int idService)
        {
            Models.Resource resourceMain = new Models.Resource();
            RestClient      client       = new RestClient(urlBase);

            client.Timeout = -1;
            string urlResource = "resources/serviceMain/" + idService;
            var    request     = new RestRequest(urlResource, Method.GET);

            foreach (RestResponseCookie cookie in Login.cookies)
            {
                request.AddCookie(cookie.Name, cookie.Value);
            }
            request.AddHeader("Token", Login.tokenAccount.token);
            System.Net.ServicePointManager.ServerCertificateValidationCallback = (senderX, certificate, chain, sslPolicyErrors) => { return(true); };
            try
            {
                IRestResponse response = client.Execute(request);
                if (response.StatusCode == System.Net.HttpStatusCode.Created || response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    isImageFound = true;
                    resourceMain = JsonConvert.DeserializeObject <Models.Resource>(response.Content);
                }
                else
                {
                    if (response.StatusCode != System.Net.HttpStatusCode.NotFound)
                    {
                        Models.Error responseError = JsonConvert.DeserializeObject <Models.Error>(response.Content);
                        TelegramBot.SendToTelegram(responseError.error);
                    }
                    else
                    {
                        isImageFound = false;
                    }
                }
                return(resourceMain);
            }
            catch (Exception exception)
            {
                TelegramBot.SendToTelegram(exception);
                LogException.Log(this, exception);
                return(resourceMain);
            }
        }
 private void AddServiceInListView()
 {
     foreach (Models.Service service in services)
     {
         Models.Resource resourceMain = new Models.Resource();
         resourceMain = GetResource(service.idService);
         GetImage(resourceMain.routeSave);
         if (!isImageFound)
         {
             image = null;
         }
         ListViewService.Items.Add(
             new
         {
             ImageService = image,
             Name         = service.name
         }
             );
     }
 }
Пример #18
0
        private void UploadImageButtonClicked(object sender, RoutedEventArgs routedEvent)
        {
            OpenFileDialog search = new OpenFileDialog()
            {
                Filter = "Image (*.jpg)|*.jpg|Image (*.png)|*.png"
            };

            if (search.ShowDialog() == true)
            {
                imageNewService.Source = new BitmapImage(new Uri(search.FileName, UriKind.RelativeOrAbsolute));
                imageNewService.Height = 150;
                imageNewService.Width  = 150;
                newResource            = new Models.Resource();
                String[] resultReplaceName = search.SafeFileName.Split('.');
                newResource.name = resultReplaceName[0];
                routeImage       = search.FileName;
                CreateResourceFromInputData();
                RegisterResource();
            }
        }
 private void AddAccountsInListView()
 {
     foreach (Models.MemberATE memberATE in memberATEs)
     {
         Models.Resource resourceMain = new Models.Resource();
         resourceMain = GetResource(memberATE.idAccount);
         GetImage(resourceMain.routeSave);
         if (!isImageFound)
         {
             image = null;
         }
         ListViewAccount.Items.Add(
             new
         {
             ImageAccount = image,
             Name         = memberATE.lastname + " " + memberATE.name
         }
             );
     }
 }
Пример #20
0
 public void InitializeMenu()
 {
     TextBlockTitle.Text = "!Bienvenido Usuario " + Login.loginAccount.username + "!";
     if (Login.tokenAccount.memberATEType == Number.NumberValue(NumberValues.ONE))
     {
         TextBlockMenuRequest.Text     = "Solicitudes Enviadas";
         TextBlockMenuAccount.Text     = "Registrarse como Empleado";
         TextBlockMenuAccount.FontSize = 11;
         PackIconActiveAccount.Kind    = MaterialDesignThemes.Wpf.PackIconKind.AccountHardHat;
         TextBlockCommentTracing.Text  = "Comentarios";
         PackIconCommentTracing.Kind   = MaterialDesignThemes.Wpf.PackIconKind.CommentCheck;
     }
     GetAccount();
     if (memberATE != null)
     {
         GetCity();
         if (city != null)
         {
             InitializeState();
             resource = GetResource();
             if (resource.routeSave != null)
             {
                 GetImage();
                 ImageMember.Source       = image;
                 ImageMember.Visibility   = Visibility.Visible;
                 PackIconImage.Visibility = Visibility.Hidden;
             }
             TextBoxName.Text     = memberATE.name;
             TextBoxLastName.Text = memberATE.lastname;
             TextBoxEmail.Text    = memberATE.email;
             TextBoxUserName.Text = memberATE.username;
             DateTime dateBirth = DateTime.ParseExact(memberATE.dateBirth, "yyyy/MM/dd", null);
             DatePickerDateBirth.SelectedDate = dateBirth;
             ButtonSave.IsEnabled             = true;
             ButtonDelete.IsEnabled           = true;
             ButtonChangePassword.IsEnabled   = true;
         }
     }
 }
Пример #21
0
        public async Task SaveVideo(Models.Resource resource, MemoryStream stream)
        {
            var client = await GetClient();

            var credential = _mediaCredential.Value;

            var contentAddress = new ContentAddress(resource.ContentAddress);
            var sourceName     = $"raw-{contentAddress.ContainerName}";

            Asset asset = await client.Assets.GetAsync(credential.ResourceGroup, credential.AccountName, sourceName);

            if (asset != null)
            {
                await client.Assets.DeleteAsync(credential.ResourceGroup, credential.AccountName, sourceName);

                await Task.Delay(TimeSpan.FromSeconds(60));
            }
            //do
            //{
            //    asset = await client.Assets.GetAsync(credential.ResourceGroup, credential.AccountName, sourceName);
            //} while (asset != null);

            asset = await client.Assets.CreateOrUpdateAsync(credential.ResourceGroup, credential.AccountName,
                                                            sourceName, new Asset(name : sourceName, container : sourceName));

            var response = await client.Assets.ListContainerSasAsync(
                credential.ResourceGroup,
                credential.AccountName,
                asset.Name,
                permissions : AssetContainerPermission.ReadWrite,
                expiryTime : DateTime.UtcNow.AddHours(4).ToUniversalTime());

            var sasUri = new Uri(response.AssetContainerSasUrls.First());
            CloudBlobContainer container = new CloudBlobContainer(sasUri);
            var blob = container.GetBlockBlobReference(Path.GetFileName(resource.Filename));

            // Use Strorage API to upload the file into the container in storage.
            await blob.UploadFromStreamAsync(stream);
        }
Пример #22
0
 private void AddRequestSentInListView()
 {
     foreach (Models.RequestSent requestSent in requestsSent)
     {
         Models.Resource resourceMain = new Models.Resource();
         resourceMain = GetResource(requestSent.idMemberATE);
         GetImage(resourceMain.routeSave);
         if (!isImageFound)
         {
             image = null;
         }
         ListViewRequestsSent.Items.Add(
             new
         {
             ImageService = image,
             Name         = requestSent.idService,
             Date         = "Fecha: " + requestSent.date,
             Time         = "Hora: " + requestSent.time
         }
             );
     }
 }
        public void InitializeMember()
        {
            if (MemberATE.memberATEStatus == Number.NumberValue(NumberValues.ONE))
            {
                ButtonBlock.Visibility  = Visibility.Visible;
                ButtonUnlock.Visibility = Visibility.Hidden;
            }
            else
            {
                if (MemberATE.memberATEStatus == Number.NumberValue(NumberValues.TWO))
                {
                    ButtonBlock.Visibility  = Visibility.Hidden;
                    ButtonUnlock.Visibility = Visibility.Hidden;
                }
                else
                {
                    ButtonBlock.Visibility  = Visibility.Hidden;
                    ButtonUnlock.Visibility = Visibility.Visible;
                }
            }

            TextBoxName.Text     = MemberATE.name;
            TextBoxLastName.Text = MemberATE.lastname;
            DateTime date          = DateTime.ParseExact(MemberATE.dateBirth, "yyyy/MM/dd", null);
            string   dateConverted = date.ToString("dd/MM/yyyy");

            TextBoxDateBirth.Text = dateConverted;
            TextBoxEmail.Text     = MemberATE.email;
            TextBoxUserName.Text  = MemberATE.username;
            Models.Resource resource = GetResource();
            if (resource.routeSave != null)
            {
                GetImage(resource.routeSave);
                ImageMember.Source       = image;
                PackIconImage.Visibility = Visibility.Hidden;
                ImageMember.Visibility   = Visibility.Visible;
            }
        }
Пример #24
0
        private void RegisterResource()
        {
            RestClient client = new RestClient(urlBase);

            client.Timeout = -1;
            var request = new RestRequest("resources", Method.POST);

            request.AddParameter("isMainResource", newResource.isMainResource);
            request.AddParameter("name", newResource.name);
            request.AddParameter("idService", newResource.idService);
            request.AddParameter("idMemberATE", newResource.idMemberATE);
            request.AddFile("resourceFile", routeImage);
            request.AddHeader("Token", Login.tokenAccount.token);
            request.AddHeader("Content-Type", "multipart/form-data");
            System.Net.ServicePointManager.ServerCertificateValidationCallback = (senderX, certificate, chain, sslPolicyErrors) => { return(true); };
            try
            {
                IRestResponse response = client.Execute(request);
                if (response.StatusCode == System.Net.HttpStatusCode.Created || response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    newResource = JsonConvert.DeserializeObject <Models.Resource>(response.Content);
                    MessageBox.Show("Se agrego la imagen exitosamente", "Registro exitoso", MessageBoxButton.OK, MessageBoxImage.Information);
                    ListBoxImages.Items.Add(imageNewService);
                    resources.Add(newResource);
                }
                else
                {
                    Models.Error responseError = JsonConvert.DeserializeObject <Models.Error>(response.Content);
                    MessageBox.Show(responseError.error, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            catch (Exception exception)
            {
                TelegramBot.SendToTelegram(exception);
                LogException.Log(this, exception);
                MessageBox.Show("No se pudo registrar el recurso .Intente más tarde", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Пример #25
0
 private void AddRequestReceivedInListView()
 {
     foreach (Models.RequestReceived requestReceived in requestsReceived)
     {
         Models.Resource resourceMain = new Models.Resource();
         resourceMain = GetResource(requestReceived.idService);
         GetImage(resourceMain.routeSave);
         if (!isImageFound)
         {
             image = null;
         }
         DateTime date          = DateTime.ParseExact(requestReceived.date, "yyyy/MM/dd", null);
         string   dateConverted = date.ToString("dd/MM/yyyy");
         ListViewRequestsReceived.Items.Add(
             new
         {
             ImageService = image,
             Name         = requestReceived.idMemberATE,
             Date         = "Fecha: " + dateConverted,
             Time         = "Hora: " + requestReceived.time
         }
             );
     }
 }
Пример #26
0
 private static void GetAllResourceInformation(Models.Resource resource, DatabaseContext databaseContext)
 {
     resource.Scopes = databaseContext.Scopes.Where(x => x.ResourceKey == resource.Key).ToList();
 }
Пример #27
0
        //
        // GET: /Resources/Create
        public ActionResult Create()
        {
            var model = new Models.Resource();

            return View(model);
        }
Пример #28
0
 public ResourceEventArgs(Models.Resource resource)
 {
     this.Resource = resource;
 }
 public CreateResourceCommand(Models.Resource resource)
 {
     Resource = resource;
 }
 public ResourceCreatedEvent(Models.Resource resource)
 {
     Resource = resource;
 }
 public DeleteResourceCommands(Models.Resource resource)
 {
     Resource = resource;
 }