// remove sharing with specific users
        public DataSet RemoveShare(ShareRequest request)
        {
            IDBParameter p_docId  = _dalInfra.getParameter("DocId", OracleDbType.Varchar2, request.DocId);
            IDBParameter p_userId = _dalInfra.getParameter("UserId", OracleDbType.Varchar2, request.UserId);

            return(_dalInfra.ExecuteSPQuery(_conn, "REMOVE_SHARE", p_docId, p_userId));
        }
示例#2
0
        public async Task <ActionResult> StartSharing(ShareRequest request)
        {
            try
            {
                await _sharingOperation.StartSharing(request);

                return(Ok());
            }
            catch (DuplicateSharingContextException exception)
            {
                _logger.LogError(exception, exception.Message);
                return(BadRequest("File is already shared by this user"));
            }
            catch (ValidationException exception)
            {
                _logger.LogWarning("Validation Failed. StartSharing");
                _logger.LogError(exception, exception.Message);
                return(BadRequest(exception.Errors));
            }
            catch (Exception exception)
            {
                _logger.LogError(exception, exception.Message);
                return(StatusCode(500, exception.Message));
            }
        }
示例#3
0
        static void Main(string[] args)
        {
            var share = new ShareRequest(new TestHostAdapter());

            share.OnLoad();
            share.ConfigureRunscope();
        }
示例#4
0
        IEnumerator SubmitShareRequest()
        {
            ShareRequest request = new ShareRequest
            {
                data        = dataToSubmit,
                description = descriptionInput.text,
                name        = nameInput.text,
                thumbnail   = thumbnailToSubmit
            };
            var www = ShareManager.Instance.UploadShareRequest(request);

            yield return(www);

            RRCSManager.Instance.loadingModal.Hide();
            if (www.error != null)
            {
                Debug.Log("Upload failed: " + www.error);
                RRCSManager.Instance.errorModal.Show("Upload failed: ", www.error);
            }
            else
            {
                if (nameInput.text.Length > 0)
                {
                    ShareManager.Instance.SetLastLoadedId(www.text, nameInput.text);
                }
                else
                {
                    ShareManager.Instance.SetLastLoadedId(www.text, "Unnamed Circuit");
                }

                shareSuccessModal.Show(ShareManager.SHARE_BASE_URL + www.text);
            }
        }
示例#5
0
        public bool AddShare(ShareRequest shareRequest)
        {
            using (var db = new ParchegramDBContext())
            {
                try
                {
                    Share oShare = new Share();
                    oShare.IdUser = shareRequest.IdUser;
                    oShare.IdPost = shareRequest.IdPost;
                    oShare.Date   = DateTime.Now;
                    db.Share.Add(oShare);
                    if (db.SaveChanges() == 1)
                    {
                        return(true);
                    }

                    return(false);
                }
                catch (Exception e)
                {
                    _logger.LogInformation(e.Message);
                    return(false);
                }
            }
        }
示例#6
0
        public bool UpdateShare(Share share, SecureItem item, string newStatus)
        {
            try
            {
                ShareRequest reqData = new ShareRequest();
                reqData.uuid = share.Id.ToString();

                reqData.data = EncriptItemForShare(share, Encoding.UTF8.GetString(Convert.FromBase64String(share.ReceiverPrivateKey)));

                dynamic response = pbWebApi.RequestShare(reqData, String.Format("{0}|{1}", pbData.ActiveUser, pbData.DeviceUUID));

                if (response.error != null)
                {
                    MessageBox.Show(response.error.details.ToString(), response.error.message.ToString());
                    return(false);
                }

                share.Data   = reqData.data;
                share.Status = reqData.status;
                pbData.AddOrUpdateShare(share);
                return(true);
            }
            catch
            {
            }
            return(false);
        }
示例#7
0
        public void StartSharing_should_throw_ArgumentNullException_for_Null_request()
        {
            ShareRequest request = null;

            Func <Task> act = async() => await _operation.StartSharing(request);

            act.Should().ThrowExactly <ArgumentNullException>();
        }
示例#8
0
        public async Task Share(string accessToken, ShareRequest share)
        {
            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
            _client.DefaultRequestHeaders.Add("X-Restli-Protocol-Version", "2.0.0");

            var json     = JsonConvert.SerializeObject(share);
            var content  = new StringContent(json, Encoding.UTF8, "application/json");
            var response = await _client.PostAsync(ShareUrl, content);
        }
 public void Share(ShareRequest request)
 {
     if (!request.Id.HasValue)
     {
         throw new ArgumentNullException(nameof(request.Id));
     }
     this._requestTable.Add(request.Id.Value.ToString(), request);
     this.Send(request);
 }
示例#10
0
 // Use this for initialization
 void Start()
 {
     shareRequest = GetComponent <ShareRequest>();
     Content      = transform.Find("InputField").GetComponent <InputField>();
     transform.Find("BackButton").GetComponent <Button>().onClick.AddListener(Back);
     transform.Find("SendButton").GetComponent <Button>().onClick.AddListener(Send);
     savePanel = transform.Find("SavePanel").gameObject;
     savePanel.SetActive(false);
 }
示例#11
0
        /// <summary>
        /// Share google cloud printer to other google user
        /// reference: https://developers.google.com/cloud-print/docs/shareApi#share
        /// </summary>
        /// <param name="request">Parameters for /share interface</param>
        /// <param name="cancellationToken">Cancellation token</param>
        /// <returns>Response from google cloud</returns>
        public async Task <Response <ShareRequest> > SharePrinterAsync(ShareRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            await UpdateTokenAsync(cancellationToken);

            return(await GoogleCloudPrintBaseUrl
                   .AppendPathSegment("share")
                   .WithOAuthBearerToken(_token.AccessToken)
                   .PostRequestAsync(request, cancellationToken)
                   .ReceiveJsonButThrowIfFails <Response <ShareRequest> >()
                   .ConfigureAwait(false));
        }
 public async Task ShareScheduleAsync(string teamId, DateTime startTime, DateTime endTime, bool notifyTeam)
 {
     var client       = _clientFactory.CreateClient(_options, teamId);
     var shareRequest = new ShareRequest
     {
         StartDateTime = startTime,
         EndDateTime   = endTime,
         NotifyTeam    = notifyTeam
     };
     var policy = GetTimeoutRetryPolicy(_options.LongOperationMaxAttempts, _options.LongOperationRetryIntervalSeconds);
     await policy.ExecuteAsync(() => client.ShareScheduleAsync(shareRequest, teamId));
 }
示例#13
0
    public void DoShareRequest()
    {
        PacketBase msg = new PacketBase()
        {
            packetType = PacketType.ShareRequest
        };
        ShareRequest request = new ShareRequest()
        {
        };

        msg.data = NetSerilizer.Serialize(request);
        SocketNetTools.SendMsg(msg);
    }
示例#14
0
        public Response CreateShare(ShareRequest request)
        {
            Response retval;

            try
            {
                var dsShare = _dal.CreateShare(request);
                retval = new ResponseOk <string>("Share was Created!");
            }
            catch (Exception ex)
            {
                retval = new AppResponseError("Sharing not created\n" + ex.Message);
            }
            return(retval);
        }
        public Response removeShare(ShareRequest request)
        {
            Response retval;

            try
            {
                var dsShare = _dal.RemoveShare(request);
                retval = new ResponseOk <string>("Remove share for this user");
            }
            catch (Exception ex)
            {
                retval = new AppResponseError("Can't remove now\n" + ex.Message);
            }
            return(retval);
        }
示例#16
0
        public static SharingContext Create(ShareRequest shareRequest)
        {
            var context = new SharingContext();

            context.MetaInfo             = shareRequest.MetaInfo;
            context.User                 = shareRequest.User;
            context.SharingConfiguration = shareRequest.SharingConfiguration;
            context.InfoHash             = shareRequest.MetaInfo?.Info?.GetSHA1Hash();
            context.CreatedOn            = DateTime.UtcNow;

            if (context.SharingConfiguration == null)
            {
                context.SharingConfiguration = new SharingConfiguration();
            }

            return(context);
        }
        private static void SharePrinter()
        {
            var client      = new GoogleCloudPrintClient(provider, token);
            var listRequest = new ListRequest {
                Proxy = proxy
            };
            var listResponse = client.ListPrinterAsync(listRequest).Result;

            if (listResponse.Printers != null && listResponse.Printers.Any())
            {
                for (int i = 0; i < listResponse.Printers.Count; i++)
                {
                    Console.WriteLine($"{i + 1}. {listResponse.Printers.ElementAt(i).DisplayName}");
                }
                int printerOption = -1;
                Console.Write("Please choose a printer to share: ");
                if (int.TryParse(Console.ReadLine(), out printerOption))
                {
                    var printer = listResponse.Printers.ElementAt(printerOption - 1);
                    Console.Write("Please enter a google account to send share invitation: ");
                    string account      = Console.ReadLine();
                    var    shareRequest = new ShareRequest
                    {
                        PrinterId        = printer.Id,
                        Scope            = account,
                        Role             = Role.USER,
                        SkipNotification = false
                    };
                    var shareResponse = client.SharePrinterAsync(shareRequest).Result;
                    if (shareResponse.Success)
                    {
                        Console.WriteLine($"Invitaion is sent to {account}");
                    }
                    else
                    {
                        Console.WriteLine($"Invitation is not sent, error: {shareResponse.Message}");
                    }
                }
            }
            else
            {
                Console.WriteLine("There is no printer in the list");
            }
        }
示例#18
0
        public static IActionResult Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "POST", "OPTIONS", Route = "share")] ShareRequest shareRequest, [SendGrid(ApiKey = "SendGridKey")] out SendGridMessage message,
            ILogger log)
        {
            if (shareRequest == null || !shareRequest.IsValid())
            {
                message = null;
                log.LogInformation("Share Request will be canceled due to invalid request.");
                return(new BadRequestObjectResult("Invalid payload provided, cant share session"));
            }

            message = new SendGridMessage();
            message.AddTo(shareRequest.Target);
            message.AddContent("text/html", $"<h3>{shareRequest.Session.Title} <small>@ {shareRequest.Session.Conference}</small></h3>Hey 👋, <br/>you should check out the '{shareRequest.Session.Title}' talk at {shareRequest.Session.Conference} the abstract is really good: <br/>{shareRequest.Session.Abstract}</p>");
            message.SetFrom(new EmailAddress("*****@*****.**"));
            message.SetSubject($"Hey check out the '{shareRequest.Session.Title}' at {shareRequest.Session.Conference} 🚀");
            log.LogInformation($"Session '{shareRequest.Session.Title}' has been shared via email.");
            return(new StatusCodeResult(200));
        }
示例#19
0
        public async Task StartSharing(ShareRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            await _shareRequestValidator.ValidateAndThrowAsync(request, "default,write");

            var context  = SharingContext.Create(request);
            var existing = await _sharingRepository.GetSharingContextForUserByInfoHash(request.User.Id, context.InfoHash);

            if (existing != default)
            {
                throw new DuplicateSharingContextException();
            }

            SanitizeSharingContext(context);

            await _sharingRepository.CreateSharingContext(context);
        }
示例#20
0
        /// <summary>
        /// Share google cloud printer to other google user
        /// reference: https://developers.google.com/cloud-print/docs/shareApi#share
        /// </summary>
        /// <param name="request">Parameters for /share interface</param>
        /// <param name="cancellationToken">Cancellation token</param>
        /// <returns>Response from google cloud</returns>
        public async Task <ShareResponse> SharePrinterAsync(ShareRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            await UpdateTokenAsync(cancellationToken);

            var form = new Dictionary <string, string>();

            form.Add("printerid", request.PrinterId);
            form.Add("scope", request.Scope);
            form.Add("role", request.Role.ToString().ToUpper());
            if (request.SkipNotification)
            {
                form.Add("skip_notification", request.SkipNotification.ToString());
            }

            return(await GoogleCloudPrintBaseUrl
                   .AppendPathSegment("share")
                   .WithOAuthBearerToken(_token.AccessToken)
                   .PostUrlEncodedAsync(form, cancellationToken)
                   .ReceiveJsonButThrowIfFails <ShareResponse>()
                   .ConfigureAwait(false));
        }
        private List <ShareRequest> ConvertDataToShareList(DataSet ds)
        {
            List <ShareRequest> retval = new List <ShareRequest>();
            var shareRows = ds.Tables[0].Rows;

            for (int i = 0; i < shareRows.Count; i++)
            {
                var shareDoc = new ShareRequest();
                try
                {
                    shareDoc.UserId = shareRows[i].Field <string>("USERID");
                    shareDoc.DocId  = shareRows[i].Field <string>("DOCID");

                    retval.Add(shareDoc);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
            return(retval);
        }
示例#22
0
        public async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest request,
                                              [OrchestrationClient] IDurableOrchestrationClient entityClient,
                                              TraceWriter log)
        {
            var userId     = request.Query["userid"];
            var testEntity = new EntityId(nameof(User), userId);

            var current = await entityClient.ReadEntityStateAsync <UserData>(testEntity);

            if (current.EntityExists)
            {
                var share = new ShareRequest(current.EntityState.PersonId);
                share.Text = new Text {
                    Content = "Test share"
                };
                await _proxy.Share(current.EntityState.AccessToken, share);

                return(new OkObjectResult(current));
            }

            return(new UnauthorizedResult());
        }
示例#23
0
        public bool DeleteShare(ShareRequest shareRequest)
        {
            using (var db = new ParchegramDBContext())
            {
                try
                {
                    Share oShare = db.Share.Where(s => s.IdUser == shareRequest.IdUser &&
                                                  s.IdPost == shareRequest.IdPost).FirstOrDefault();
                    db.Share.Remove(oShare);
                    if (db.SaveChanges() == 1)
                    {
                        return(true);
                    }

                    return(false);
                }
                catch (Exception e)
                {
                    _logger.LogInformation(e.Message);
                    return(false);
                }
            }
        }
示例#24
0
        public async Task <ActionResult> Get()
        {
            var request = new ShareRequest
            {
                MetaInfo = new MetaInfo(
                    new SingleFileInfo(
                        500,
                        string.Join("", Enumerable.Range(0, 20).Select(_ => "a")),
                        "name",
                        5000),
                    "http://announce"),
                User = new User
                {
                    Id          = "userid",
                    SecretHash  = "secret",
                    UserAddress = new UserAddress
                    {
                        Addresses = new List <Address>
                        {
                            new Address()
                            {
                                Host = "192.0.0.1", Port = 5770, Type = AddressType.Internal
                            }
                        }
                    }
                },
                SharingConfiguration = new SharingConfiguration
                {
                    Expiry       = TimeSpan.FromDays(5),
                    SharingScope = SharingScope.Internal
                }
            };
            await _sharingOperation.StartSharing(request);

            return(Ok());
        }
 public Response CreateShare([FromBody] ShareRequest request)
 {
     return(_service.CreateShare(request));
 }
示例#26
0
        public bool UpdateShareStatus(string shareUuid, string status, bool active, string secureItemId)
        {
            ShareRequest reqData = new ShareRequest()
            {
                uuid   = shareUuid,
                status = status
            };

            dynamic response = pbWebApi.RequestShare(reqData, String.Format("{0}|{1}", pbData.ActiveUser, pbData.DeviceUUID));

            if (response.error != null)
            {
                System.Windows.Forms.MessageBox.Show(response.error.details.ToString(), response.error.message.ToString());
                return(false);
            }
            else
            {
                if (response.shares.received.Count > 0)
                {
                    if (response.shares.received[0].status.ToString().ToLower() != status.ToLower())
                    {
                        MessageBox.Show("Error while executing action on server");
                        return(false);
                    }
                }
                else if (response.shares.sent.Count > 0)
                {
                    if (response.shares.sent[0].status.ToString().ToLower() != status.ToLower())
                    {
                        MessageBox.Show("Error while executing action on server");
                        return(false);
                    }
                }

                var shareItem = pbData.GetSharesByUuid(shareUuid);

                #region refactored part UpdateShareStatus
                var share = new Share();
                share        = shareItem;
                share.Status = status;
                share.Active = active;


                if (status == ShareStatus.Shared || status == ShareStatus.Rejected || status == ShareStatus.Revoked)
                {
                    share.Data = null;
                }
                //update share status
                if (!pbData.UpdateShareStatus(share))
                {
                    System.Windows.Forms.MessageBox.Show("Error while saving share, please perform sync");
                    return(false);
                }
                #endregion



                ShareEventStatus?evStatus = null;

                switch (status)
                {
                case ShareStatus.Rejected: evStatus = ShareEventStatus.Rejected;
                    break;

                case ShareStatus.Shared: evStatus = ShareEventStatus.Accepted;
                    break;

                case ShareStatus.Expired: evStatus = ShareEventStatus.Expired;
                    break;

                case ShareStatus.Canceled: evStatus = ShareEventStatus.Canceled;
                    break;

                case ShareStatus.Revoked: evStatus = ShareEventStatus.Canceled;
                    break;
                }

                #region refactored Analytics
                if (inAppAnalyitics != null)
                {
                    doShareAnalytics(shareItem, evStatus);
                }
                #endregion
            }
            return(true);
        }
示例#27
0
        public List <SecuerShareData> ShareItem(string receiver, string message, SecureItem secureItem, int expirationPeriodIndex, bool passwordVisibleToRecipient, DateTime?expirationDate)
        {
            Share share = new Share()
            {
                Receiver       = receiver,
                Message        = message,
                Visible        = passwordVisibleToRecipient,
                ExpirationDate = expirationDate ?? DateTime.Now.AddYears(50).ToUniversalTime()
            };

            Share shareItem = new Share();

            logger.Info("Start ShareItem");
            try
            {
                bool            isShareAllowed         = true;
                bool            isShareTresholdReached = pbData.IsShareTresholdReached(false, true);
                IFeatureChecker featureChecker         = resolver.GetInstanceOf <IFeatureChecker>();

                isShareAllowed = featureChecker.IsEnabled(DefaultProperties.Features_ShareCenter_UnlimitedShares, showUIIfNotEnabled: false);

                if (!isShareAllowed)
                {
                    isShareAllowed = featureChecker.IsEnabled(DefaultProperties.Features_ShareCenter_UpTo5Shares, showUIIfNotEnabled: false) && !isShareTresholdReached;
                }

                if (!isShareAllowed)
                {
                    featureChecker.FireActionNotEnabledUI();
                    return(new List <SecuerShareData>());
                }

                //validate emails
                List <string> receiverList = new List <string>();
                share.Receiver = share.Receiver.Replace(" ", String.Empty);
                if (share.Receiver.Contains(','))
                {
                    receiverList.AddRange(share.Receiver.Replace(" ", String.Empty).Split(','));
                }
                if (share.Receiver.Contains(';'))
                {
                    receiverList.AddRange(share.Receiver.Replace(" ", String.Empty).Split(';'));
                }

                if (receiverList.Count == 0)
                {
                    receiverList.Add(share.Receiver);
                }

                Common cm = new Common();

                //Changed
                List <Share> shareList = pbData.GetShares(true, false, null, null);

                List <string> alreadyShared = shareList.Select(x => x.Receiver).ToList <string>();

                foreach (var rec in receiverList)
                {
                    if (!cm.IsEmailValid(rec))
                    {
                        continue;
                    }
                    if (rec == pbData.ActiveUser)
                    {
                        continue;
                    }
                    if (alreadyShared.Contains(rec))
                    {
                        continue;
                    }
                    else
                    {
                        alreadyShared.Add(rec);
                    }

                    ShareRequest reqData = new ShareRequest()
                    {
                        receiver         = rec,
                        secure_item_type = null,
                        status           = ShareStatus.Waiting,
                        nickname         = share.Nickname,
                        expiration_date  = share.ExpirationDateString,
                        message          = share.Message
                    };

                    dynamic response = pbWebApi.RequestShare(reqData, String.Format("{0}|{1}", pbData.ActiveUser, pbData.DeviceUUID));

                    if (response.error != null)
                    {
                        MessageBox.Show(response.error.details.ToString(), response.error.message.ToString());
                        return(new List <SecuerShareData>());
                    }



                    if (response.shares.sent != null)
                    {
                        if (response.shares.sent[0] != null)
                        {
                            dynamic sent = response.shares.sent[0];


                            if (!String.IsNullOrEmpty(sent.public_key.ToString()))
                            {
                                string receiverPublicKey = sent.public_key.ToString();

                                // Don't make recipient item as favorite. UATD-387
                                if (share.SharedItem == SharedItems.folder)
                                {
                                    foreach (Folder folder in share.Folders)
                                    {
                                        foreach (SecureItem item in folder.SecureItems)
                                        {
                                            item.Favorite = false;
                                        }
                                    }
                                }
                                else
                                {
                                    foreach (SecureItem item in share.SecureItems)
                                    {
                                        item.Favorite = false;
                                    }
                                }
                                reqData.data    = EncriptItemForShare(share, Encoding.UTF8.GetString(Convert.FromBase64String(receiverPublicKey)));// JsonConvert.SerializeObject(new { key = encriptionKey, payload = payload }, Formatting.None, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore });
                                reqData.status  = ShareStatus.Pending;
                                reqData.message = share.Message;


                                if (!expirationDate.HasValue)
                                {
                                    switch (expirationPeriodIndex)
                                    {
                                    case 0:
                                        share.ExpirationDate = DateTime.Now.AddYears(50).ToUniversalTime();
                                        break;

                                    case 1:
                                        share.ExpirationDate = DateTime.Now.AddDays(1).ToUniversalTime();
                                        break;

                                    case 2:
                                        share.ExpirationDate = DateTime.Now.AddDays(7).ToUniversalTime();
                                        break;

                                    case 3:
                                        share.ExpirationDate = DateTime.Now.AddMonths(1).ToUniversalTime();
                                        break;

                                    case 4:
                                        share.ExpirationDate = DateTime.Now.AddYears(1).ToUniversalTime();
                                        break;

                                    default:
                                        share.ExpirationDate = DateTime.Now.AddYears(50).ToUniversalTime();
                                        break;
                                    }
                                }
                                reqData.expiration_date = share.ExpirationDateString;
                                reqData.order           = "0";
                                reqData.uuid            = sent.uuid.ToString();
                                reqData.visible         = share.Visible;


                                response = pbWebApi.RequestShare(reqData, String.Format("{0}|{1}", pbData.ActiveUser, pbData.DeviceUUID));

                                if (response.error != null)
                                {
                                    MessageBox.Show(response.error.details.ToString(), response.error.message.ToString());
                                    return(new List <SecuerShareData>());
                                }
                                sent = response.shares.sent[0];
                                shareItem.Receiver       = reqData.receiver;
                                shareItem.Sender         = pbData.ActiveUser;
                                shareItem.ExpirationDate = expirationDate.Value;
                                shareItem.Data           = reqData.data;

                                shareItem.Id       = sent.uuid.ToString();
                                shareItem.UUID     = sent.uuid.ToString();
                                shareItem.Status   = sent.status;
                                shareItem.Nickname = sent.nickname;
                                shareItem.Message  = reqData.message;

                                shareItem.SecureItemType     = reqData.secure_item_type;
                                shareItem.ReceiverPrivateKey = receiverPublicKey;
                                shareItem.Visible            = reqData.visible;
                                pbData.AddOrUpdateShare(shareItem);

                                //return BindingSecureShareList(item.Id);
                                //CASE #1
                            }
                            else
                            {
                                sent = response.shares.sent[0];
                                shareItem.Receiver       = reqData.receiver;
                                shareItem.Sender         = pbData.ActiveUser;
                                shareItem.ExpirationDate = DateTime.Now.AddDays(1).ToUniversalTime();
                                shareItem.Data           = reqData.data;

                                shareItem.Id       = sent.uuid.ToString();
                                shareItem.UUID     = sent.uuid.ToString();
                                shareItem.Status   = sent.status;
                                shareItem.Nickname = sent.nickname;
                                shareItem.Message  = reqData.message;

                                shareItem.SecureItemType     = reqData.secure_item_type;
                                shareItem.ReceiverPrivateKey = null;
                                shareItem.Visible            = reqData.visible;
                                pbData.AddOrUpdateShare(shareItem);

                                //return BindingSecureShareList(item.Id);
                                //CASE #2 - user does not exist - no data encription
                            }


                            if (inAppAnalyitics != null)
                            {
                                doShareAnalytics(shareItem, ShareEventStatus.Shared);
                            }
                        }
                    }
                }
                //((IAppCommand)System.Windows.Application.Current).ExecuteCommand("ReloadData", null);
                return(BindingSecureShareList(shareItem));
            }
            catch (Exception ex)
            {
                logger.Error("Error in ShareItem -->" + ex.ToString());
                MessageBox.Show("Error while saving share");
            }
            return(new List <SecuerShareData>());
        }
        // GET: Share
        public ActionResult Index(ShareRequest model)
        {
            // Try to know if the id is a integer or a string
            Int32  id;
            String title;
            String uri;
            String status;

            if (Int32.TryParse(model.Id, out id))
            {
                // Try to get the post
                PostLink post;
                post = _dataService.GetPostLink(id);

                if (post == null)
                {
                    return(NotFound());
                }

                // Format data
                title  = Uri.EscapeDataString(post.Title);
                uri    = Uri.EscapeUriString(post.Url);
                status = Uri.EscapeDataString(post.Title + " " + post.Url);
            }
            else
            {
                // Test the id content
                if (String.IsNullOrEmpty(model.Id))
                {
                    return(NotFound());
                }
                title  = null;
                uri    = Uri.EscapeUriString(model.Id);
                status = uri;
            }

            // redirect to social page requested
            switch (model.N)
            {
            case SocialnetWork.Facebook:
            {
                return(Redirect(String.Format(FaceBookFormat, uri)));
            }

            case SocialnetWork.LinkedIn:
            {
                return(Redirect(String.Format(LinkedInFormat, uri, title)));
            }

            case SocialnetWork.Reddit:
            {
                return(Redirect(String.Format(RedditForamt, uri)));
            }

            case SocialnetWork.Pinterest:
            {
                return(Redirect(String.Format(PinterestFormat, uri, title)));
            }

            case SocialnetWork.Yahoo:
            {
                return(Redirect(String.Format(YahooFormat, uri, title)));
            }

            case SocialnetWork.Vk:
            {
                return(Redirect(String.Format(VkFormat, uri, title)));
            }

            case SocialnetWork.Viadeo:
            {
                return(Redirect(String.Format(ViadeoFormat, uri, title)));
            }

            case SocialnetWork.Yammer:
            {
                return(Redirect(String.Format(YammerFormat, status)));
            }

            case SocialnetWork.Twitter:
            default:
            {
                return(Redirect(String.Format(TwitterFormat, uri, title)));
            }
            }
        }
        // *** Private Methods ***

        private async void DataTransferManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args)
        {
            DataRequestDeferral deferral = args.Request.GetDeferral();
            IShareRequest shareRequest = new ShareRequest(args.Request);
            await ShareRequested(shareRequest);
            deferral.Complete();
        }
 public Response RemoveShare([FromBody] ShareRequest request)
 {
     return(_service.removeShare(request));
 }
示例#31
0
        public static void Main(string[] args)
        {
            //var socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
            //socket.Connect("eu.stratum.slushpool.com", 3333);
            //var jsonString = "{\"id\": 1, \"method\": \"mining.subscribe\", \"params\": []}\n";

            var uri    = new Uri("stratum+tcp://eu.stratum.slushpool.com:3333");
            var client = new SlushMiningPoolClient(uri);

            client.OnEnqueMessage += (s, e) =>
            {
                Console.WriteLine(e);
            };
            client.OpenConnection();


            client.Subscribe(new SubscribeRequest(1));

            var authRequest = new AuthorizeRequest(2);

            authRequest.Build("acunsolo.acunsolo-worker2", "foo");

            var extranonce1 = "";

            var jobManager = JobManager.Instance;

            jobManager.OnJobSuccess += (s, e) =>
            {
                var shareRequest = new ShareRequest(GetRequestIndex());
                shareRequest.Build("acunsolo.acunsolo-worker2", e.Job.JobId, e.Job.ExtraNonce2, e.Job.NTime, e.Job.FoundNonce);
                client.Share(shareRequest);
            };

            client.OnSubscribeResponse += (s, e) =>
            {
                var response = e.Message;
                extranonce1 = response.Extranonce1;
                JobManager.Instance.ExtraNonce1 = extranonce1;
                JobManager.Instance.SubscribeSuccess();
            };

            client.OnNotifyRequest += (s, e) =>
            {
                Task.Factory.StartNew(() =>
                {
                    if (e.Message.CleanJobs)
                    {
                        JobManager.Instance.ClearAllJob();
                    }
                    if (JobManager.Instance.IsWorkerSubscribed)
                    {
                        var job = Job.CreateFromRequest(e.Message);
                        JobManager.Instance.AddJob(job);
                    }
                });
            };
            client.OnSetDifficultyRequest += (s, e) =>
            {
                var message = e.Message;
                JobManager.Instance.Difficulty = message.Difficulty;
            };
            client.OnAuthorizeResponse += (s, e) =>
            {
                JobManager.Instance.Authorize();
            };


            Console.ReadKey();
        }