Exemplo n.º 1
0
        public IHttpActionResult PutInstrumentation(long id, Instrumentation instrumentation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != instrumentation.InstrumentationId)
            {
                return(BadRequest());
            }

            db.Entry(instrumentation).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!InstrumentationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemplo n.º 2
0
        public IHttpActionResult PutStyle(int id, Style style)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != style.StyleId)
            {
                return(BadRequest());
            }

            db.Entry(style).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StyleExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemplo n.º 3
0
        public IHttpActionResult PutCountry(long id, Country country)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != country.CountryId)
            {
                return(BadRequest());
            }

            db.Entry(country).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CountryExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemplo n.º 4
0
        public IHttpActionResult UserChangePassword([FromBody] Artist artistCred)
        {
            //get artist object from db
            using (AplaudoDBEntities ctx = new AplaudoDBEntities())
            {
                //check the user exists
                var selectedArtist = db.Artists.SingleOrDefault(a => a.EmailAddress.Trim() == artistCred.EmailAddress.Trim());
                if (selectedArtist != null)
                {
                    // change old vcode and password to new ones
                    var keyNew   = Helper.GeneratePassword(10);
                    var password = Helper.EncodePassword(artistCred.Password, keyNew);
                    selectedArtist.VCode    = keyNew;
                    selectedArtist.Password = password;
                    ctx.SaveChanges();

                    return(Content(HttpStatusCode.OK, "New password has been updated successfully."));
                }
                else
                {
                    return(Content(HttpStatusCode.BadRequest, "Wrong user email address."));
                }
            }
        }
Exemplo n.º 5
0
        // PUT api/Artists/5
        public IHttpActionResult Put([FromBody] ArtistDto artistObject)
        {
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    using (AplaudoDBEntities ctx = new AplaudoDBEntities())
                    {
                        var selectedArtist = ctx.Artists.Where(a => a.ArtistId == artistObject.ArtistId).FirstOrDefault <Artist>();
                        if (selectedArtist != null)
                        {
                            selectedArtist.ArtistFirstName = artistObject.ArtistFirstName;
                            selectedArtist.ArtistLastName  = artistObject.ArtistLastName;
                            selectedArtist.ArtistNickName  = artistObject.ArtistNickName;
                            selectedArtist.EmailAddress    = artistObject.EmailAddress;
                            selectedArtist.Bio             = artistObject.Bio;
                            selectedArtist.YouTube         = artistObject.YouTube;
                            selectedArtist.iTunes          = artistObject.iTunes;
                            selectedArtist.LinkedIn        = artistObject.LinkedIn;
                            selectedArtist.Spotify         = artistObject.Spotify;
                            selectedArtist.Website         = artistObject.WebSite;
                            selectedArtist.PhotoLink       = artistObject.PhotoLink;
                            selectedArtist.CountryId       = ctx.Countries.FirstOrDefault(x => x.CountryName == artistObject.CountryName).CountryId;

                            // encode the password -- to be done
                            var keyNew   = Helper.GeneratePassword(10);
                            var password = Helper.EncodePassword(artistObject.Password, keyNew);
                            artistObject.VCode    = keyNew;
                            artistObject.Password = password;



                            ctx.SaveChanges();
                            //update styles and instruments first delete then insert
                            var artistInstrumentsStyles = ctx.Artists.Include(ar => ar.Instruments)
                                                          .Include(ar => ar.Styles)
                                                          .FirstOrDefault(ar => ar.ArtistId == artistObject.ArtistId);
                            //Delete Styles and instruments for that artists
                            foreach (var existingChild in artistInstrumentsStyles.Styles.ToList())
                            {
                                artistInstrumentsStyles.Styles.Remove(existingChild);
                            }
                            //Delete instruments
                            foreach (var existingChild in artistInstrumentsStyles.Instruments.ToList())
                            {
                                artistInstrumentsStyles.Instruments.Remove(existingChild);
                            }
                            db.SaveChanges();


                            // Now add the new ones

                            //Now add instruments and styles
                            foreach (var instrumentNameValue in artistObject.InstrumentNames)
                            {
                                //get the  instrument Id one by one
                                int instrumentIdDB = (db.Instruments.FirstOrDefault(inst => inst.InstrumentName.Trim().ToLower() == instrumentNameValue.InstrumentName.Trim().ToLower())).InstrumentId;

                                //add each instrument to this particular concert
                                (db.Artists.FirstOrDefault(c => c.ArtistId == artistObject.ArtistId)).Instruments.Add(db.Instruments.SingleOrDefault(inst => inst.InstrumentId == instrumentIdDB));
                            }
                            db.SaveChanges();
                            foreach (var styleValue in artistObject.StyleNames)
                            {
                                //get the  instrument Id one by one
                                int styleIDDB = (db.Styles.FirstOrDefault(st => st.StyleName.Trim().ToLower() == styleValue.StyleName.Trim().ToLower())).StyleId;

                                //add each instrument to this particular concert
                                (db.Artists.FirstOrDefault(c => c.ArtistId == artistObject.ArtistId)).Styles.Add(db.Styles.SingleOrDefault(st => st.StyleId == styleIDDB));
                            }
                            db.SaveChanges();
                        }
                        else
                        {
                            return(NotFound());
                        }
                    }
                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.BadRequest, ex.Message));
            }
            return(Content(HttpStatusCode.OK, artistObject));
        }
Exemplo n.º 6
0
        // POST api/Artists
        public IHttpActionResult Post([FromBody] ArtistDto artistObject)
        {
            try
            {
                //Check if the sent object has already a registered email address
                var selectedArtist = db.Artists.SingleOrDefault(a => a.EmailAddress.Trim() == artistObject.EmailAddress.Trim());
                if (selectedArtist != null)
                {
                    return(Content(HttpStatusCode.Found, "You have already created an account."));
                }
                else
                {
                    // encode the password -- to be done
                    var keyNew   = Helper.GeneratePassword(10);
                    var password = Helper.EncodePassword(artistObject.Password, keyNew);
                    artistObject.VCode    = keyNew;
                    artistObject.Password = password;
                    using (TransactionScope scope = new TransactionScope())
                    {
                        using (var ctx = new AplaudoDBEntities())
                        {
                            var myNewArtist = new Artist()
                            {
                                ArtistFirstName = artistObject.ArtistFirstName,
                                ArtistLastName  = artistObject.ArtistLastName,
                                ArtistNickName  = artistObject.ArtistNickName,
                                EmailAddress    = artistObject.EmailAddress.Trim(),
                                Bio             = artistObject.Bio,
                                PhotoLink       = artistObject.PhotoLink,
                                Spotify         = artistObject.Spotify,
                                YouTube         = artistObject.YouTube,
                                LinkedIn        = artistObject.LinkedIn,
                                iTunes          = artistObject.iTunes,
                                SoundCloud      = artistObject.SoundCloud,
                                Website         = artistObject.WebSite,
                                CountryId       = ctx.Countries.FirstOrDefault(c => c.CountryName == artistObject.CountryName).CountryId,
                                VCode           = artistObject.VCode,
                                Password        = artistObject.Password
                            };
                            ctx.Artists.Add(myNewArtist);
                            ctx.SaveChanges();
                            //Now add instruments and styles
                            if (artistObject != null && artistObject.InstrumentNames != null)
                            {
                                foreach (var instrumentNameValue in artistObject.InstrumentNames)
                                {
                                    //get the  instrument Id one by one
                                    int instrumentIdDB = (db.Instruments.FirstOrDefault(inst => inst.InstrumentName.Trim().ToLower() == instrumentNameValue.InstrumentName.Trim().ToLower())).InstrumentId;

                                    //add each instrument to this particular concert
                                    (db.Artists.FirstOrDefault(c => c.ArtistId == myNewArtist.ArtistId)).Instruments.Add(db.Instruments.SingleOrDefault(inst => inst.InstrumentId == instrumentIdDB));
                                }

                                db.SaveChanges();
                            }
                            //Insert styles names per user
                            if (artistObject != null && artistObject.StyleNames != null)
                            {
                                foreach (var styleValue in artistObject.StyleNames)
                                {
                                    //get the  instrument Id one by one
                                    int styleIDDB = (db.Styles.FirstOrDefault(st => st.StyleName.Trim().ToLower() == styleValue.StyleName.Trim().ToLower())).StyleId;

                                    //add each instrument to this particular concert
                                    (db.Artists.FirstOrDefault(c => c.ArtistId == myNewArtist.ArtistId)).Styles.Add(db.Styles.SingleOrDefault(st => st.StyleId == styleIDDB));
                                }
                                db.SaveChanges();
                            }
                        }
                        scope.Complete();
                    }

                    return(Content(HttpStatusCode.Created, "Your account is created successfully."));
                }
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.BadRequest, ex.Message));
            }
        }
Exemplo n.º 7
0
        public IHttpActionResult PutConcert(ConcertDto concertJson)
        {
            Concert myNewConcert;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (String.IsNullOrEmpty(concertJson.ConcertId.ToString()) || concertJson.ConcertId == 0)
            {
                return(BadRequest());
            }
            //for a concert object update concert then update artists and insruments
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    //Step 1 update concert
                    myNewConcert = new Concert()
                    {
                        ConcertId         = concertJson.ConcertId,
                        About             = concertJson.About,
                        StyleId           = (db.Styles.FirstOrDefault(s => s.StyleName.Trim().ToLower() == concertJson.Style.Trim().ToLower())).StyleId,
                        ConcertTitle      = concertJson.ConcertTitle,
                        Date              = concertJson.Date,
                        ConcertLink       = concertJson.ConcertLink,
                        PictureLink       = concertJson.PictureLink,
                        ProgrammaLink     = concertJson.ProgrammaLink,
                        TeaserLink        = concertJson.TeaserLink,
                        CountryId         = (db.Countries.FirstOrDefault(c => c.CountryName.ToLower().Trim() == concertJson.CountryName.Trim().ToLower()).CountryId),
                        InstrumentationId = (db.Instrumentations.FirstOrDefault(intsr => intsr.InstrumentationValue.Trim().ToLower() == concertJson.InstrumentationValue.Trim().ToLower()).InstrumentationId)
                    };
                    db.Entry(myNewConcert).State = EntityState.Modified;
                    db.SaveChanges();

                    //Step 2 : Transaction to delete instruments and artists

                    var concetrtsArtistsInstruments = db.Concerts.Include(b => b.Instruments)
                                                      .Include(b => b.Artists)
                                                      .FirstOrDefault(b => b.ConcertId == concertJson.ConcertId);

                    // Delete artists
                    foreach (var existingChild in concetrtsArtistsInstruments.Artists.ToList())
                    {
                        concetrtsArtistsInstruments.Artists.Remove(existingChild);
                    }
                    //Delete instruments
                    foreach (var existingChild in concetrtsArtistsInstruments.Instruments.ToList())
                    {
                        concetrtsArtistsInstruments.Instruments.Remove(existingChild);
                    }
                    db.SaveChanges();



                    // Step 3 : Transaction to insert them

                    //save artists linked to that concert
                    foreach (var artistEmails in concertJson.ArtistEmails)
                    {
                        (db.Concerts.FirstOrDefault(c => c.ConcertId == myNewConcert.ConcertId)).Artists.Add(db.Artists.SingleOrDefault(ar => ar.EmailAddress == artistEmails.EmailAddress.Trim()));
                    }
                    db.SaveChanges();

                    //Save instruments
                    foreach (var instrumentNameValue in concertJson.InstrumentNames)
                    {
                        //get the  instrument Id one by one
                        int instrumentIdDB = (db.Instruments.FirstOrDefault(inst => inst.InstrumentName.Trim().ToLower() == instrumentNameValue.InstrumentName.Trim().ToLower())).InstrumentId;

                        //add each instrument to this particular concert
                        (db.Concerts.FirstOrDefault(c => c.ConcertId == myNewConcert.ConcertId)).Instruments.Add(db.Instruments.SingleOrDefault(inst => inst.InstrumentId == instrumentIdDB));
                    }
                    db.SaveChanges();


                    scope.Complete();
                }
            }

            catch (DbUpdateConcurrencyException)
            {
                if (!ConcertExists(concertJson.ConcertId))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(Content(HttpStatusCode.OK, concertJson));
        }