Exemplo n.º 1
0
 public IHttpActionResult UserLogin([FromBody] Artist artistCred)
 {
     using (AplaudoDBEntities ctx = new AplaudoDBEntities())
     {
         //check the user exists
         var selectedArtist = db.Artists.SingleOrDefault(a => a.EmailAddress.Trim() == artistCred.EmailAddress.Trim());
         if (selectedArtist != null)
         {
             //Encode the artist password
             var hashCode = selectedArtist.VCode;
             //Password Hashing Process Call Helper Class Method
             var encodingPasswordString = Helper.EncodePassword(artistCred.Password, hashCode);
             if (selectedArtist.Password == encodingPasswordString)
             {
                 return(Ok());
             }
             else
             {
                 return(Content(HttpStatusCode.BadRequest, "Wrong user credentials."));
             }
         }
         else
         {
             return(NotFound());
         }
     }
 }
Exemplo n.º 2
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.º 3
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.º 4
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));
            }
        }