Exemple #1
0
 public Task <EventSenderResult> SendEventDataAsync(EventDataKind kind, string data, int eventCount)
 {
     Calls.Add(new Params {
         Kind = kind, Data = data, EventCount = eventCount
     });
     return(Task.FromResult(new EventSenderResult(DeliveryStatus.Succeeded, null)));
 }
Exemple #2
0
        static FileEventData CreateData(EventDataKind kind, bool isDirectory, params FilePath [] paths)
        {
            if (kind != EventDataKind.Created && kind != EventDataKind.Changed && kind != EventDataKind.Removed)
            {
                Assert.Fail("Wrong data kind passed to this method");
            }

            var args = new FileEventArgs();

            foreach (var path in paths)
            {
                args.Add(new FileEventInfo(path, isDirectory));
            }

            return(new FileEventData {
                Kind = kind,
                Args = args,
            });
        }
        internal static EventCapture From(Mock <IEventSender> mockSender, EventDataKind forKind, EventSenderResult result)
        {
            var ec = new EventCapture();

            mockSender.Setup(
                s => s.SendEventDataAsync(forKind, It.IsAny <string>(), It.IsAny <int>())
                ).Callback <EventDataKind, string, int>((kind, data, count) =>
            {
                var parsed = LdValue.Parse(data);
                var events = kind == EventDataKind.DiagnosticEvent ? new List <LdValue> {
                    parsed
                } :
                parsed.AsList(LdValue.Convert.Json);
                ec.Events.AddRange(events);
                foreach (var e in events)
                {
                    ec.EventsQueue.Add(e);
                }
            }).Returns(Task.FromResult(result));
            return(ec);
        }
Exemple #4
0
        public Dictionary <string, object> GetAllContact()
        {
            string[] PROJECTION =
            {
                ContactsContract.Contacts.InterfaceConsts.Id,
                ContactsContract.Contacts.InterfaceConsts.DisplayName,
                ContactsContract.CommonDataKinds.StructuredName.GivenName
            };

            totalContactListWithoutGrouping = new List <ContactItem>();
            var     globalVariable  = GlobalApplication.CurrentContext;
            var     contentResolver = globalVariable.ContentResolver;
            ICursor myCursor        = contentResolver.Query(ContactsContract.Contacts.ContentUri, null, null, null, "upper(" + ContactsContract.CommonDataKinds.Phone.InterfaceConsts.DisplayName + ") ASC");

            //ICursor myCursor = contentResolver.Query(ContactsContract.Contacts.ContentUri, null, null, null,  null);
            if (myCursor.Count > 0)
            {
                while (myCursor.MoveToNext())
                {
                    ContactItem item = new ContactItem();

                    string id          = myCursor.GetString(myCursor.GetColumnIndex(ContactsContract.Contacts.InterfaceConsts.Id)) ?? "";
                    string displayname = myCursor.GetString(myCursor.GetColumnIndex(ContactsContract.Contacts.InterfaceConsts.DisplayName)) ?? "";
                    item.ContactID   = id;
                    item.DisplayName = displayname;

                    //Name
                    string   whereName       = ContactsContract.Data.InterfaceConsts.Mimetype + " = ? AND " + ContactsContract.CommonDataKinds.StructuredName.InterfaceConsts.ContactId + " = ?";
                    string[] whereNameParams = { ContactsContract.CommonDataKinds.StructuredName.ContentItemType, id };
                    ICursor  struc           = contentResolver.Query(ContactsContract.Data.ContentUri, null, whereName, whereNameParams, ContactsContract.CommonDataKinds.StructuredName.GivenName);

                    while (struc.MoveToNext())
                    {
                        Name   name       = new Name();
                        string middleName = struc.GetString(
                            struc.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredName.MiddleName));
                        name.MiddleName = middleName ?? "";
                        string suffix = struc.GetString(
                            struc.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredName.Suffix));
                        name.Suffix = suffix ?? "";
                        string prefix = struc.GetString(
                            struc.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredName.Prefix));
                        name.Prefix = prefix ?? "";
                        string givename = struc.GetString(
                            struc.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredName.GivenName));
                        name.FirstName = givename ?? "";
                        string familyname = struc.GetString(
                            struc.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredName.FamilyName));
                        name.LastName = familyname ?? "";
                        item.GetNames = name;
                        //Console.WriteLine("Name:"+givename);
                    }
                    struc.Close();

                    //phone
                    var hasPhonenumber = Convert.ToInt32(myCursor.GetString(myCursor.GetColumnIndex(ContactsContract.Contacts.InterfaceConsts.HasPhoneNumber)));
                    if (hasPhonenumber > 0)
                    {
                        ICursor phoneCursor = contentResolver.Query(ContactsContract.CommonDataKinds.Phone.ContentUri,
                                                                    null, ContactsContract.CommonDataKinds.Phone.InterfaceConsts.ContactId + " = ?", new string[] { id }, null);
                        List <Phone> phoneitem = new List <Phone>();
                        while (phoneCursor.MoveToNext())
                        {
                            Phone phone = new Phone();
                            // string phoneid = phoneCursor.GetString(phoneCursor.GetColumnIndex(ContactsContract.CommonDataKinds.Phone.InterfaceConsts.Id));
                            string phonenumber = phoneCursor.GetString(phoneCursor.GetColumnIndex(ContactsContract.CommonDataKinds.Phone.Number));
                            // string phonetyoe = phoneCursor.GetString(phoneCursor.GetColumnIndex(ContactsContract.CommonDataKinds.Email.InterfaceConsts.Type + " = ?"));
                            PhoneDataKind pkind = (PhoneDataKind)phoneCursor.GetInt(phoneCursor.GetColumnIndex(ContactsContract.CommonDataKinds.CommonColumns.Type));
                            var           type  = pkind.ToString();
                            // phone.Phoneid = phoneid ?? "";
                            phone.PhoneNumber = phonenumber ?? "";
                            phone.Type        = type ?? "";
                            phoneitem.Add(phone);
                        }
                        item.GetPhones = phoneitem;
                        phoneCursor.Close();
                    }

                    //email
                    ICursor emailCursor = contentResolver.Query(ContactsContract.CommonDataKinds.Email.ContentUri,
                                                                null, ContactsContract.CommonDataKinds.Phone.InterfaceConsts.ContactId + " = ?", new string[] { id }, null);
                    List <Email> emailitem = new List <Email>();
                    while (emailCursor.MoveToNext())
                    {
                        Email email = new Email();
                        // string ids = emailCursor.GetString(emailCursor.GetColumnIndex(ContactsContract.CommonDataKinds.Email.InterfaceConsts.Id));
                        string emailid = emailCursor.GetString(emailCursor.GetColumnIndex(ContactsContract.CommonDataKinds.Email.InterfaceConsts.Data));
                        // string phonetyoe = phoneCursor.GetString(phoneCursor.GetColumnIndex(ContactsContract.CommonDataKinds.Email.InterfaceConsts.Type + " = ?"));
                        PhoneDataKind pkind = (PhoneDataKind)emailCursor.GetInt(emailCursor.GetColumnIndex(ContactsContract.CommonDataKinds.CommonColumns.Type));
                        var           type  = pkind.ToString();
                        email.Emailid = emailid ?? "";
                        //email.id = ids ?? "";
                        email.Type = type ?? "";
                        emailitem.Add(email);
                    }
                    item.GetEmails = emailitem;
                    emailCursor.Close();
                    //Address
                    ICursor addrCur = contentResolver.Query(ContactsContract.CommonDataKinds.StructuredPostal.ContentUri,
                                                            null, ContactsContract.CommonDataKinds.Phone.InterfaceConsts.ContactId + " = ?", new string[] { id }, null);

                    if (addrCur != null)
                    {
                        if (addrCur.Count > 0)
                        {
                            List <Address> addresslist = new List <Address>();
                            addrCur.MoveToFirst();
                            do
                            {
                                Address address = new Address();
                                string  street  = addrCur.GetString(
                                    addrCur.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.Street));
                                string city = addrCur.GetString(
                                    addrCur.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.City));
                                string state = addrCur.GetString(
                                    addrCur.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.Region));
                                string postalCode = addrCur.GetString(
                                    addrCur.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.Postcode));
                                string country = addrCur.GetString(
                                    addrCur.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.Country));
                                // Console.WriteLine(poBox + ":" + street + ":" + city + ":" + state + ":" + postalCode + ":" + country+ ":"+type);
                                AddressDataKind pkind = (AddressDataKind)addrCur.GetInt(addrCur.GetColumnIndex(ContactsContract.CommonDataKinds.CommonColumns.Type));
                                address.Type        = pkind.ToString() ?? "";
                                address.FullAddress = street + "," + city + "," + state + "," + "," + postalCode + "," + country;
                                addresslist.Add(address);
                            } while (addrCur.MoveToNext());
                            item.GetAddress = addresslist;
                        }
                    }
                    addrCur.Close();
                    string[] whereNameParams1 = { ContactsContract.CommonDataKinds.Organization.ContentItemType, id };
                    ICursor  struc1           = contentResolver.Query(ContactsContract.Data.ContentUri, null, whereName, whereNameParams1, null);

                    if (struc1.MoveToNext())
                    {
                        Company company     = new Company();
                        string  companyname = struc1.GetString(
                            struc1.GetColumnIndex(ContactsContract.CommonDataKinds.Organization.Company));
                        string title = struc1.GetString(
                            struc1.GetColumnIndex(ContactsContract.CommonDataKinds.Organization.Title));
                        company.CompanyName = companyname ?? "";
                        company.Role        = title ?? "";
                        item.GetCompany     = company;
                        // Console.WriteLine("company:" + company);
                    }
                    struc1.Close();
                    string[]   whereweb = { ContactsContract.CommonDataKinds.Website.ContentItemType, id };
                    ICursor    web      = contentResolver.Query(ContactsContract.Data.ContentUri, null, whereName, whereweb, null);
                    List <Url> urllist  = new List <Url>();
                    if (web != null)
                    {
                        if (web.Count > 0)
                        {
                            web.MoveToFirst();
                            do
                            {
                                Url    url    = new Url();
                                string weburl = web.GetString(
                                    web.GetColumnIndex(ContactsContract.CommonDataKinds.Website.Url));
                                //WebsiteDataKind pkind = (WebsiteDataKind)emailCursor.GetInt(emailCursor.GetColumnIndex(ContactsContract.CommonDataKinds.CommonColumns.Type));
                                url.URL = weburl ?? "";
                                urllist.Add(url);
                            } while (web.MoveToNext());
                        }
                    }
                    item.GetUrls = urllist;
                    //date
                    string   whereevent  = ContactsContract.Data.InterfaceConsts.Mimetype + " = ? AND " + ContactsContract.CommonDataKinds.Event.InterfaceConsts.ContactId + " = ?";
                    string[] whereeventp = { ContactsContract.CommonDataKinds.Event.ContentItemType, id };
                    ICursor  events      = contentResolver.Query(ContactsContract.Data.ContentUri, null, whereevent, whereeventp, null);

                    if (events != null)
                    {
                        if (events.Count > 0)
                        {
                            List <DateList> dates = new List <DateList>();
                            events.MoveToFirst();
                            do
                            {
                                DateList dateList = new DateList();
                                string   date     = events.GetString(
                                    events.GetColumnIndex(ContactsContract.CommonDataKinds.Event.StartDate));
                                EventDataKind pkind1 = (EventDataKind)events.GetInt(events.GetColumnIndex(ContactsContract.CommonDataKinds.CommonColumns.Type));
                                var           type   = pkind1.ToString();
                                if (type.Equals("Birthday"))
                                {
                                    item.Birthday = date;
                                }
                                dateList.Date = date ?? "";
                                dateList.type = type ?? "";
                                dates.Add(dateList);
                                // Console.WriteLine("ani:" + type);
                                //  Console.WriteLine("date:" + bitrh);
                            } while (events.MoveToNext());
                            item.GetDateList = dates;
                        }
                    }

                    totalContactListWithoutGrouping.Add(item);
                    try
                    {
                        if (item.DisplayName != null && !string.IsNullOrEmpty(item.DisplayName))
                        {
                            var firstLetter = item.DisplayName.Substring(0, 1).ToUpper();
                            var indexs      = Array.IndexOf(alphate, firstLetter);
                            totalContactList[indexs].Add(item);
                        }
                        else
                        {
                            totalContactList[26].Add(item);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                }
            }

            var dict = new Dictionary <string, object>
            {
                { "Group", totalContactList },
                { "List", totalContactListWithoutGrouping }
            };

            return(dict);
        }
        public async Task <EventSenderResult> SendEventDataAsync(EventDataKind kind, string data, int eventCount)
        {
            Uri    uri;
            string description;
            string payloadId;

            if (kind == EventDataKind.DiagnosticEvent)
            {
                uri         = _diagnosticUri;
                description = "diagnostic event";
                payloadId   = null;
            }
            else
            {
                uri         = _eventsUri;
                description = string.Format("{0} event(s)", eventCount);
                payloadId   = Guid.NewGuid().ToString();
            }

            _logger.Debug("Submitting {0} to {1} with json: {2}", description, uri.AbsoluteUri, data);

            for (var attempt = 0; attempt < MaxAttempts; attempt++)
            {
                if (attempt > 0)
                {
                    await Task.Delay(_retryInterval);
                }

                using (var cts = new CancellationTokenSource(_timeout))
                {
                    string errorMessage = null;
                    bool   canRetry     = false;
                    bool   mustShutDown = false;

                    try
                    {
                        using (var request = PrepareRequest(uri, payloadId))
                            using (var stringContent = new StringContent(data, Encoding.UTF8, "application/json"))
                            {
                                request.Content = stringContent;
                                Stopwatch timer = new Stopwatch();
                                using (var response = await _httpClient.SendAsync(request, cts.Token))
                                {
                                    timer.Stop();
                                    _logger.Debug("Event delivery took {0} ms, response status {1}",
                                                  timer.ElapsedMilliseconds, (int)response.StatusCode);
                                    if (response.IsSuccessStatusCode)
                                    {
                                        DateTimeOffset?respDate = response.Headers.Date;
                                        return(new EventSenderResult(DeliveryStatus.Succeeded,
                                                                     respDate.HasValue ? (DateTime?)respDate.Value.DateTime : null));
                                    }
                                    else
                                    {
                                        errorMessage = HttpErrors.ErrorMessageBase((int)response.StatusCode);
                                        canRetry     = HttpErrors.IsRecoverable((int)response.StatusCode);
                                        mustShutDown = !canRetry;
                                    }
                                }
                            }
                    }
                    catch (TaskCanceledException e)
                    {
                        if (e.CancellationToken == cts.Token)
                        {
                            // Indicates the task was cancelled deliberately somehow; in this case don't retry
                            _logger.Warn("Event sending task was cancelled");
                            return(new EventSenderResult(DeliveryStatus.Failed, null));
                        }
                        else
                        {
                            // Otherwise this was a request timeout.
                            errorMessage = "Timed out";
                            canRetry     = true;
                        }
                    }
                    catch (Exception e)
                    {
                        errorMessage = string.Format("Error ({0})", LogValues.ExceptionSummary(e));
                        canRetry     = true;
                    }
                    string nextStepDesc = canRetry ?
                                          (attempt == MaxAttempts - 1 ? "will not retry" : "will retry after one second") :
                                          "giving up permanently";
                    _logger.Warn(errorMessage + " sending {0}; {1}", description, nextStepDesc);
                    if (mustShutDown)
                    {
                        return(new EventSenderResult(DeliveryStatus.FailedAndMustShutDown, null));
                    }
                    if (!canRetry)
                    {
                        break;
                    }
                }
            }
            return(new EventSenderResult(DeliveryStatus.Failed, null));
        }
Exemple #6
0
 static FileEventData CreateData(EventDataKind kind, params (FilePath, FilePath) [] paths)
Exemple #7
0
 static FileEventData CreateData(EventDataKind kind, params FilePath [] paths)
 => CreateData(kind, false, paths);
Exemple #8
0
 static FileEventData CreateDirectoryData(EventDataKind kind, params FilePath [] paths)
 => CreateData(kind, true, paths);
 public WrappedFileEventArgs(EventDataKind kind, FileEventArgs args)
 {
     Kind = kind;
     Args = args;
 }
 protected override void OnRaiseSync(EventDataKind kind, FileEventArgs args)
 => Values.Add(new WrappedFileEventArgs(kind, args));