public void createMedlem(Medlem medlem)
 {
     ICollection<ValidationResult> validationResult;
     if (!medlem.Validate(out validationResult))
     {
         var vx = new ValidationException("Objektet klarade inte valideringen.");
         vx.Data.Add("validationResult", validationResult);
         throw vx;
     }
     Medlem.AddMedlem(medlem);
 }
        /// <summary>
        /// Update a already existing contact with the new information
        /// </summary>
        /// <param name="contact"></param>
        public void UpdateContact(Medlem medlem)
        {
            using (var conn = CreateConnection())
            {
                SqlCommand cmd = new SqlCommand("Person.uspUpdateContact", conn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@MedlemId", SqlDbType.Int, 4).Value           = medlem.MedlemId;
                cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar, 50).Value    = medlem.FirstName;
                cmd.Parameters.Add("@LastName", SqlDbType.NVarChar, 50).Value     = medlem.LastName;
                cmd.Parameters.Add("@EmailAddress", SqlDbType.NVarChar, 50).Value = medlem.PrimaryEmail;

                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }
        /// <summary>
        /// Creates a new element in the database and put the contact into it
        /// </summary>
        /// <param name="contact"></param>
        public void InsertMedlem(Medlem medlem)
        {
            using (var conn = CreateConnection())
            {
                SqlCommand cmd = new SqlCommand("Person.AddSong", conn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@firstName", SqlDbType.NVarChar, 50).Value    = medlem.FirstName;
                cmd.Parameters.Add("@lastName", SqlDbType.NVarChar, 50).Value     = medlem.LastName;
                cmd.Parameters.Add("@primaryEmail", SqlDbType.NVarChar, 50).Value = medlem.PrimaryEmail;

                cmd.Parameters.Add("@medlemId", SqlDbType.Int, 4).Direction = ParameterDirection.Output;

                conn.Open();
                cmd.ExecuteNonQuery();

                medlem.MedlemId = (int)cmd.Parameters["@medlemId"].Value;
            }
        }
        public void AddMedlem(Medlem medlem)
        {
            using (var conn = CreateConnection())
            {
                SqlCommand cmd = new SqlCommand("addMedlemWithUniqueEmail", conn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@firstName", SqlDbType.VarChar, 45).Value = medlem.FirstName;
                cmd.Parameters.Add("@lastName", SqlDbType.VarChar, 45).Value = medlem.LastName;
                cmd.Parameters.Add("@primaryEmail", SqlDbType.VarChar, 50).Value = medlem.PrimaryEmail;

                cmd.Parameters.Add("@medlemId", SqlDbType.Int, 4).Direction = ParameterDirection.Output;

                conn.Open();
                cmd.ExecuteNonQuery();

                medlem.MedlemId = (int)cmd.Parameters["@medlemId"].Value;
            }
        }
 protected void RegisterButton_Click(object sender, EventArgs e)
 {
     if (Page.IsValid)
     {
         try
         {
             Medlem medlem = new Medlem { FirstName = FirstName.Text, LastName = LastName.Text, PrimaryEmail = PrimaryEmail.Text };
             Service.createMedlem(medlem);
             Page.SetTempData("SuccessMessage", "Kontakten skapades.");
             Response.RedirectToRoute("MedlemPage", new { medlemid = medlem.MedlemId });
         }
         catch (ValidationException vx)
         {
             var validationResult = vx.Data["validationResult"] as List<ValidationResult>;
             validationResult.ForEach(r => ModelState.AddModelError(String.Empty, r.ErrorMessage));
             return;
         }
         catch (Exception ex)
         {
             ModelState.AddModelError(String.Empty, String.Format("Ett fel uppstod vid skapandet av medlemen. {0}", ex.Message));
         }
     }
 }
        /// <summary>
        /// Update a already existing contact with the new information
        /// </summary>
        /// <param name="contact"></param>
        public void UpdateContact(Medlem medlem)
        {
            using (var conn = CreateConnection())
            {
                SqlCommand cmd = new SqlCommand("Person.uspUpdateContact", conn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@MedlemId", SqlDbType.Int, 4).Value = medlem.MedlemId;
                cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar, 50).Value = medlem.FirstName;
                cmd.Parameters.Add("@LastName", SqlDbType.NVarChar, 50).Value = medlem.LastName;
                cmd.Parameters.Add("@EmailAddress", SqlDbType.NVarChar, 50).Value = medlem.PrimaryEmail;

                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }