コード例 #1
0
        public IHttpActionResult AddContact([FromBody] RequestContact contactRequest)
        {
            try
            {
                string result = ValidateContact(contactRequest);
                if (!string.IsNullOrEmpty(result))
                {
                    ModelState.AddModelError("request", result);
                    return(BadRequest(ModelState));
                }

                var contact = new Contact();
                contact.FirstName   = contactRequest.FirstName;
                contact.LastName    = contactRequest.LastName;
                contact.Email       = contactRequest.Email;
                contact.PhoneNumber = contactRequest.PhoneNumber;
                contact.Status      = true;

                this.contactsRepository.AddContact(contact);
            }
            catch (Exception ex)
            {
                _log.Error("Error occured in AddContact method:", ex);
                ModelState.AddModelError("request", "Some error has occured.");
                return(BadRequest(ModelState));
            }

            return(Ok());
        }
コード例 #2
0
        // [Route("api/contacts/filter")]
        public async Task <HttpResponseMessage> PostFilterOrderBy([FromBody] RequestContact model)
        {
            var data = await manager.FilterOrderByRequestAsync(model);

            if (ReferenceEquals(data, null))
            {
                return(Create400());
            }
            return(Create200(data));
        }
コード例 #3
0
        public async Task <IHttpActionResult> PostQueryContacts([FromBody] RequestContact request, int?start = null, int?rows = null, int?date = null,
                                                                int?name = null, int?company = null, int?country = null, int?position = null)
        {
            KeyValuePair <int, List <ViewContactSimple> > data = await appManager.GetQueryContactsAsync(request, start, rows, date, name, company, country, position);

            if (data.Value == null)
            {
                return(NotFound());
            }

            return(Ok(data));
        }
コード例 #4
0
        public bool UpdateStatus(int id)
        {
            RequestContact contact = new RequestContact();

            contact.ID = id;
            contact    = ctr.GetObject <RequestContact>(contact);
            if (contact != null)
            {
                contact.Status = true;
                ctr.Update <RequestContact>(contact);
                return(true);
            }
            return(false);
        }
コード例 #5
0
        public override int GetHashCode()
        {
            int hashCode = 786331036;

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Text);

            hashCode = hashCode * -1521134295 + RequestContact.GetHashCode();
            hashCode = hashCode * -1521134295 + RequestLocation.GetHashCode();
            hashCode = hashCode * -1521134295 + EqualityComparer <KeyboardButtonPollType?> .Default.GetHashCode(RequestPoll);

            hashCode = hashCode * -1521134295 + EqualityComparer <WebAppInfo?> .Default.GetHashCode(WebApp);

            return(hashCode);
        }
コード例 #6
0
        public async Task <IHttpActionResult> PostCreateContact([FromBody] RequestContact contact)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Contact contactToAdd = new Contact();
            Contact addedcontact = await appManager.AddOrUpdateContactAsync(contactToAdd, contact, true);

            if (addedcontact != null)
            {
                return(Created($"Contacts?guid = {addedcontact.GuID}", new ViewContact(addedcontact)));
            }
            return(BadRequest("Contact with such an email address is already exist"));
        }
コード例 #7
0
        public string ValidateContact(RequestContact contact)
        {
            if (string.IsNullOrEmpty(contact.FirstName))
            {
                return("First name cannot be empty.");
            }
            if (string.IsNullOrEmpty(contact.LastName))
            {
                return("Last name cannot be empty.");
            }
            if (string.IsNullOrEmpty(contact.Email))
            {
                return("Email cannot be empty.");
            }
            if (string.IsNullOrEmpty(contact.PhoneNumber))
            {
                return("PhoneNumber cannot be empty.");
            }

            return(string.Empty);
        }
コード例 #8
0
        public int UpdateRequestTypeBasedContacts(Admin adminObj)
        {
            try
            {
                adminServ = new AdminService();
                int            isSuccess         = adminServ.AddUserData(adminObj);
                RequestContact requestContactObj = new RequestContact();
                requestContactObj.RequestContact_ID = adminObj.Id;
                requestContactObj.UserID            = adminObj.UserId;
                isSuccess = adminServ.UpdateContactBasedonRequestType(requestContactObj);

                return(isSuccess);
            }
            catch (Exception ex)
            {
                NameValueCollection additionalInfo = new NameValueCollection();
                additionalInfo.Add("PageName", "Admin");
                ExceptionManager.Publish(ex, additionalInfo);
                return(420);
            }
        }
コード例 #9
0
        public async Task <IHttpActionResult> PutUpdateContact([FromBody] RequestContact contact)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Contact contactToUpdate = await appManager.GetContactByGuIdAsync(contact.GuID);

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

            Contact updatedcontact = await appManager.AddOrUpdateContactAsync(contactToUpdate, contact, false);

            if (updatedcontact != null)
            {
                return(Ok(new ViewContact(updatedcontact)));
            }
            return(BadRequest("Contact with such an email address is already exist"));
        }
コード例 #10
0
        public IHttpActionResult EditContact(int contactId, [FromBody] RequestContact contactRequest)
        {
            try
            {
                var contact = this.contactsRepository.GetContactById(contactId);
                if (contact == null)
                {
                    ModelState.AddModelError("request", "Contact with the provided Id is not present.");
                    return(BadRequest(ModelState));
                }
                if (!string.IsNullOrEmpty(contactRequest.LastName))
                {
                    contact.LastName = contactRequest.LastName;
                }
                if (!string.IsNullOrEmpty(contactRequest.PhoneNumber))
                {
                    contact.PhoneNumber = contactRequest.PhoneNumber;
                }
                if (!string.IsNullOrEmpty(contactRequest.FirstName))
                {
                    contact.FirstName = contactRequest.FirstName;
                }
                if (!string.IsNullOrEmpty(contactRequest.Email))
                {
                    contact.Email = contactRequest.Email;
                }

                this.contactsRepository.UpdateContact(contact);
            }
            catch (Exception ex)
            {
                _log.Error("Error occured in EditContact method:", ex);
                ModelState.AddModelError("request", "Some error has occured.");
                return(BadRequest(ModelState));
            }

            return(Ok("Contact updated successfully."));
        }
コード例 #11
0
        static RequestContact FromCsv(string csvLine)
        {
            string[]       values        = csvLine.Split(',');
            RequestContact contactValues = new RequestContact();

            for (int i = 0; i < 5; i++)
            {
                if (values[i] == null || values[i].Length < 1)
                {
                    return(null);
                }
            }
            if (!EmailValidator(values[4]))
            {
                return(null);
            }
            contactValues.FullName    = values[0];
            contactValues.CompanyName = values[1];
            contactValues.Position    = values[2];
            contactValues.Country     = values[3];
            contactValues.Email       = values[4];
            return(contactValues);
        }
コード例 #12
0
        public async Task <List <ViewContactLess> > FilterSortAsync(RequestContact model, FilterBy filter)
        {
            var data     = new List <Contact>();
            var sortby   = model.SortBy;
            var filterby = model.FilterBy;

            #region SWITCH

            switch (filter)
            {
            case FilterBy.Name:
                data = await
                       _database.Contacts
                       .Where(p => p.FullName == filterby.FullName)
                       .ToListAsync();

                break;

            case FilterBy.Company:
                data = await
                       _database.Contacts
                       .Where(p => p.CompanyName == filterby.CompanyName)
                       .ToListAsync();

                break;

            case FilterBy.NameCompany:
                data =
                    await
                    _database.Contacts.Where(
                        p => p.FullName == filterby.FullName && p.CompanyName == filterby.CompanyName)
                    .ToListAsync();

                break;

            case FilterBy.Position:
                data = await _database.Contacts.Where(p => p.Position == filterby.Position).ToListAsync();

                break;

            case FilterBy.NamePosition:
                data =
                    await
                    _database.Contacts.Where(
                        p => p.FullName == filterby.FullName && p.Position == filterby.Position).ToListAsync();

                break;

            case FilterBy.NameCompanyPosition:
                data =
                    await
                    _database.Contacts.Where(
                        p =>
                        p.FullName == filterby.FullName && p.CompanyName == filterby.CompanyName &&
                        p.Position == filterby.Position).ToListAsync();

                break;

            case FilterBy.Country:
                data = await _database.Contacts.Where(p => p.Country == filterby.Country).ToListAsync();

                break;

            case FilterBy.NameCountry:
                data =
                    await
                    _database.Contacts.Where(
                        p => p.FullName == filterby.FullName && p.Country == filterby.Country).ToListAsync();

                break;

            case FilterBy.NameCompanyCountry:
                data =
                    await
                    _database.Contacts.Where(
                        p =>
                        p.FullName == filterby.FullName && p.CompanyName == filterby.CompanyName &&
                        p.Country == filterby.Country).ToListAsync();

                break;

            case FilterBy.NameCompanyPositionCountry:
                data =
                    await
                    _database.Contacts.Where(
                        p =>
                        p.FullName == filterby.FullName && p.CompanyName == filterby.CompanyName &&
                        p.Position == filterby.Position && p.Country == filterby.Country).ToListAsync();

                break;

            case FilterBy.NamePositionCountry:
                data =
                    await
                    _database.Contacts.Where(
                        p =>
                        p.FullName == filterby.FullName && p.Position == filterby.Position &&
                        p.Country == filterby.Country).ToListAsync();

                break;

            case FilterBy.CountryPosition:
                data =
                    await
                    _database.Contacts.Where(
                        p => p.Country == filterby.Country && p.Position == filterby.Position).ToListAsync();

                break;
            }

            #endregion
            #region PAGING
            string first = "Start", second = "Count";
            if (sortby.ContainsKey(first) && sortby.ContainsKey(second))
            {
                int  start;
                bool st = int.TryParse(sortby[first], out start);
                int  count;
                bool end = int.TryParse(sortby[second], out count);
                if (st && end)
                {
                    data = Paging(data, start, count);
                }
            }
            #endregion
            #region ORDERBY
            if (sortby.ContainsKey("OrderBy"))
            {
                string orderby = sortby["OrderBy"];
                if (orderby == "Ascending" || orderby == "0" || orderby == "Asc")
                {
                    data = Sort(data, OrderBy.Ascending);
                }
                if (orderby == "Descending" || orderby == "1" || orderby == "Desc")
                {
                    data = Sort(data, OrderBy.Descending);
                }
            }
            #endregion
            var list = new List <ViewContactLess>();
            AutoMapper.Mapper.Map(data, list);
            return(list);
        }
コード例 #13
0
        public async Task <List <ViewContactLess> > FilterOrderByRequestAsync(RequestContact request)
        {
            if (ReferenceEquals(request, null))
            {
                return(null);
            }
            ViewContactLess        filter = request.FilterBy;
            List <ViewContactLess> result = new List <ViewContactLess>();

            try
            {
                if (filter.FullName != null)
                {
                    result = await FilterSortAsync(request, FilterBy.Name);
                }
                if (filter.CompanyName != null)
                {
                    result = await FilterSortAsync(request, FilterBy.Company);

                    if (filter.FullName != null)
                    {
                        result = await FilterSortAsync(request, FilterBy.NameCompany);
                    }
                }
                if (filter.Position != null)
                {
                    result = await FilterSortAsync(request, FilterBy.Position);

                    if (filter.FullName != null)
                    {
                        result = await FilterSortAsync(request, FilterBy.NamePosition);
                    }
                    if (filter.CompanyName != null)
                    {
                        result = await FilterSortAsync(request, FilterBy.CompanyPosition);
                    }
                    if (filter.FullName != null && filter.CompanyName != null)
                    {
                        result = await FilterSortAsync(request, FilterBy.NameCompanyPosition);
                    }
                }
                if (filter.Country != null)
                {
                    result = await FilterSortAsync(request, FilterBy.Country);

                    if (filter.FullName != null)
                    {
                        result = await FilterSortAsync(request, FilterBy.NameCountry);
                    }
                    if (filter.Position != null)
                    {
                        result = await FilterSortAsync(request, FilterBy.CountryPosition);
                    }
                    if (filter.FullName != null && filter.Position != null)
                    {
                        result = await FilterSortAsync(request, FilterBy.NamePositionCountry);
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
コード例 #14
0
        public async Task <Contact> AddOrUpdateContactAsync(Contact contactToAddOrUpdate, RequestContact requestContact, bool flag)
        {
            if (requestContact == null)
            {
                return(null);                        // in case of uploading file.
            }
            using (DbContextTransaction transaction = db.Database.BeginTransaction())
            {
                contactToAddOrUpdate.FullName    = requestContact.FullName;
                contactToAddOrUpdate.Country     = requestContact.Country;
                contactToAddOrUpdate.CompanyName = requestContact.CompanyName;
                contactToAddOrUpdate.Email       = requestContact.Email;
                contactToAddOrUpdate.Position    = requestContact.Position;

                if (requestContact.EmailLists != null)
                {
                    contactToAddOrUpdate.EmailLists.Clear();
                    foreach (var emaillistId in requestContact.EmailLists)
                    {
                        EmailList emlist = await db.EmailLists.FirstOrDefaultAsync(x => x.EmailListID == emaillistId);

                        if (emlist != null)
                        {
                            contactToAddOrUpdate.EmailLists.Add(emlist);
                        }
                    }
                }

                if (flag)
                {
                    if ((await db.Contacts.CountAsync(e => e.Email == contactToAddOrUpdate.Email) > 0))
                    {
                        return(null);
                    }
                    contactToAddOrUpdate.GuID         = Guid.NewGuid();
                    contactToAddOrUpdate.DateInserted = DateTime.Now;
                    db.Contacts.Add(contactToAddOrUpdate);
                }
                else
                {
                    if ((await db.Contacts.CountAsync(e => e.Email == contactToAddOrUpdate.Email && e.GuID != contactToAddOrUpdate.GuID) > 0))
                    {
                        return(null);
                    }
                    contactToAddOrUpdate.Modified = DateTime.Now;
                    db.Contacts.AddOrUpdate(contactToAddOrUpdate);
                }

                try
                {
                    await db.SaveChangesAsync();

                    transaction.Commit();
                    return(contactToAddOrUpdate);
                }
                catch
                {
                    transaction.Rollback();
                    throw;
                }
            }
        }
コード例 #15
0
        public async Task <KeyValuePair <int, List <ViewContactSimple> > > GetQueryContactsAsync(RequestContact request, int?start, int?rows, int?
                                                                                                 dt, int?fn, int?cmp, int?cnt, int?pos)
        {
            db.Configuration.LazyLoadingEnabled = false;
            IQueryable <Contact> data = db.Contacts;

            // TODO: Add OrderBy().ThenBy()..... multiple ordring
            if (request != null)
            {
                if (request.FullName != null)
                {
                    data = data.Where(x => x.FullName == request.FullName);
                }
                if (request.CompanyName != null)
                {
                    data = data.Where(x => x.CompanyName == request.CompanyName);
                }
                if (request.Country != null)
                {
                    data = data.Where(x => x.Country == request.Country);
                }
                if (request.Position != null)
                {
                    data = data.Where(x => x.Position == request.Position);
                }
                if (request.Email != null)
                {
                    data = data.Where(x => x.Email == request.Email);
                }
            }

            if (fn.HasValue || cmp.HasValue || cnt.HasValue || pos.HasValue || dt.HasValue)
            {
                if (fn.HasValue)
                {
                    data = fn != 0 ? data.OrderBy(x => x.FullName) : data.OrderByDescending(x => x.FullName);
                }
                if (cmp.HasValue)
                {
                    data = cmp != 0 ? data.OrderBy(x => x.CompanyName) : data.OrderByDescending(x => x.CompanyName);
                }
                if (cnt.HasValue)
                {
                    data = cnt != 0 ? data.OrderBy(x => x.Country) : data.OrderByDescending(x => x.Country);
                }
                if (pos.HasValue)
                {
                    data = pos != 0 ? data.OrderBy(x => x.Position) : data.OrderByDescending(x => x.Position);
                }
                if (dt.HasValue)
                {
                    data = dt != 0 ? data.OrderBy(x => x.DateInserted) : data.OrderByDescending(x => x.DateInserted);
                }
            }
            else
            {
                data = data.OrderBy(x => x.DateInserted);
            }

            int pagecount = 1;

            if (start.HasValue && rows.HasValue)
            {
                pagecount = await data.CountAsync() >= rows.Value ? (await data.CountAsync() % rows.Value == 0) ?
                            (await data.CountAsync() / rows.Value) : (await data.CountAsync() / rows.Value + 1) : 1;
            }


            if (start.HasValue && rows.HasValue)
            {
                data = data.Skip(start.Value).Take(rows.Value);
            }

            var contacts = new List <ViewContactSimple>();
            await data.ForEachAsync(p => contacts.Add(new ViewContactSimple(p)));

            return(new KeyValuePair <int, List <ViewContactSimple> >(pagecount, contacts));
        }
コード例 #16
0
        static List <RequestContact> ReadExcelFile(string filename)
        {
            List <RequestContact> contacts = new List <RequestContact>();

            string[]       strProperties = new string[5];
            RequestContact contact;
            int            j = 0;

            using (SpreadsheetDocument myDoc = SpreadsheetDocument.Open(filename, false))
            {
                WorkbookPart        workbookPart = myDoc.WorkbookPart;
                IEnumerable <Sheet> Sheets       = myDoc.WorkbookPart.Workbook.GetFirstChild <Sheets>().Elements <Sheet>();
                string        relationshipId     = Sheets?.First().Id.Value;
                WorksheetPart worksheetPart      = (WorksheetPart)myDoc.WorkbookPart.GetPartById(relationshipId);
                SheetData     sheetData          = worksheetPart.Worksheet.GetFirstChild <SheetData>();
                int           i = 1;
                string        value;
                foreach (Row r in sheetData.Elements <Row>())
                {
                    if (i != 1)
                    {
                        foreach (Cell c in r.Elements <Cell>())
                        {
                            if (c == null)
                            {
                                continue;
                            }
                            value = c.InnerText;
                            if (c.DataType != null)
                            {
                                var stringTable = workbookPart.GetPartsOfType <SharedStringTablePart>().FirstOrDefault();
                                if (stringTable != null)
                                {
                                    value = stringTable.SharedStringTable.ElementAt(int.Parse(value)).InnerText;
                                }
                            }
                            strProperties[j] = value;
                            j = j + 1;
                        }
                    }
                    j = 0;
                    i++;

                    if (strProperties.Any(p => p == null || p.Length < 1))
                    {
                        contacts.Add(null); continue;
                    }
                    if (!EmailValidator(strProperties[4]))
                    {
                        contacts.Add(null); continue;
                    }
                    contact             = new RequestContact();
                    contact.FullName    = strProperties[0];
                    contact.CompanyName = strProperties[1];
                    contact.Position    = strProperties[2];
                    contact.Country     = strProperties[3];
                    contact.Email       = strProperties[4];
                    contacts.Add(contact);
                }
                return(contacts);
            }
        }