コード例 #1
0
        public async Task <IHttpActionResult> PostPatron(Patron patron)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                db.Patrons.Add(patron);
                await db.SaveChangesAsync();

                var dto = new PatronDTO()
                {
                    Id        = patron.Id,
                    FirstName = patron.FirstName,
                    LastName  = patron.LastName,
                    Address   = patron.Address
                };

                return(CreatedAtRoute("DefaultPatronApi", new { id = patron.Id }, dto));
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
コード例 #2
0
        public PatronResponse PatronGet(PatronRequest request)
        {
            try
            {
                NullSafeCheck(request, "Request");
                NullSafeCheck(request.Filter, "Filter");

                if (request.Filter.ID <= 0 && request.Filter.PersonID <= 0 && string.IsNullOrEmpty(request.Filter.NationalNo))
                {
                    throw new CustomException(INVALID_REQ_USER_MESSAGE, "ID,PersonID and NationalNo is invalid");
                }

                PatronDTO result = null;
                using (var context = new CharityEntities())
                {
                    var query = context.Patrons.AsNoTracking().AsQueryable();

                    if (request.Filter.ID > 0)
                    {
                        query = query.Where(p => p.Active && p.ID == request.Filter.ID);
                    }

                    else if (request.Filter.PersonID > 0)
                    {
                        query = query.Where(p => p.PersonID == request.Filter.PersonID);
                    }

                    else if (string.IsNullOrEmpty(request.Filter.NationalNo) == false)
                    {
                        var person = context.People.AsNoTracking().FirstOrDefault(p => p.NationalNo == request.Filter.NationalNo);
                        query = query.Where(p => p.PersonID == person.ID);
                    }

                    result = query.Select(PatronDTOMapper).FirstOrDefault();

                    if (request.LoadPerson)
                    {
                        var people = context.People.AsNoTracking();
                        var person = people.FirstOrDefault(p => p.ID == result.PersonID);
                        result.Person = PersonDTOMapper(person);
                    }
                }

                if (result == null)
                {
                    throw new CustomException("نتیجه ای یافت نشد", "Patron not found");
                }

                return(new PatronResponse {
                    Success = result != null, ResultID = result?.ID ?? 0, Result = result
                });
            }
            catch (Exception ex)
            {
                var response = ExceptionToBaseResponse(ex);
                return(response.Cast <PatronResponse>());
            }
        }
コード例 #3
0
        /****************************************************************************************************************
        *                                          Metoder vedrørende lånere                                            *
        * **************************************************************************************************************/

        // Hent låner
        public async Task <PatronDTO> GetPatronAsync(int patronId)
        {
            PatronDTO patron = null;

            HttpResponseMessage response = await client.GetAsync("api/patrons/" + patronId);

            if (response.IsSuccessStatusCode)
            {
                patron = JsonConvert.DeserializeObject <PatronDTO>(await response.Content.ReadAsStringAsync());
            }
            return(patron);
        }
コード例 #4
0
        // Tilføj en låner
        public async Task <bool> AddPatronAsync(PatronDTO patron)
        {
            string json        = JsonConvert.SerializeObject(patron);
            string relativeURL = "/api/patrons/";

            HttpResponseMessage response = await client.PostAsync(relativeURL, new StringContent(json, Encoding.UTF8, "application/json"));

            if (response.IsSuccessStatusCode)
            {
                return(true);
            }
            return(false);
        }
コード例 #5
0
        public void GetPatronForPerson(HttpListenerContext context)
        {
            string[] parameters = context.Request.RawUrl.Replace("/Get/Patron/", "").Split('/');

            int    personId = int.Parse(parameters[0]);
            string token    = parameters[1];


            var session = SessionManager.GetSession(token);

            PatronDTO result = null;

            if (session.user.People.Any(p => p.Id == personId && p.ConnectionType == ConnectionType.PersonToOwner))
            {
                var unit   = new UnitOfWork(session.context);
                var patron = unit.Patrons.Find(p => p.Person.Id == personId).FirstOrDefault();

                result = patron != null?patron.ToPatronDTO() : null;
            }

            MyResponder.RespondJson(context, result);
        }
コード例 #6
0
 public async Task <bool> AddPatronAsync(PatronDTO patron)
 {
     patrons.Add(patron);
     return(true);
 }