public static int TitlesUpdate(SequenceTitlesUpdateRequest model)
        {
            int id = 0;

            using (SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection  = conn;
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.CommandText = "dbo.Sequence_TitlesUpdate";

                    PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(SequenceUpdateRequest));
                    DataTable table = new DataTable();
                    foreach (PropertyDescriptor prop in properties)
                    {
                        table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
                    }
                    foreach (SequenceUpdateRequest item in model.Sequences)
                    {
                        DataRow row = table.NewRow();
                        foreach (PropertyDescriptor prop in properties)
                        {
                            row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
                        }
                        table.Rows.Add(row);
                    }

                    cmd.Parameters.AddWithValue("@List", table);

                    cmd.ExecuteNonQuery();
                }
                if (model.Sequences.Find(sce => sce.Id == null) != null)
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        cmd.Connection  = conn;
                        cmd.CommandType = System.Data.CommandType.StoredProcedure;
                        cmd.CommandText = "dbo.Sequence_InsertWithScenes";
                        SequenceAddRequest add = new SequenceAddRequest();
                        add = model.Sequences.Find(seq => seq.Id == null);

                        MapCommonSequenceParameters(add, cmd);
                        cmd.Parameters.AddWithValue("@UserIdCreated", _getId());
                        SqlParameter outputId = new SqlParameter("@SequenceId", System.Data.SqlDbType.Int)
                        {
                            Direction = System.Data.ParameterDirection.Output
                        };
                        cmd.Parameters.Add(outputId);

                        cmd.ExecuteNonQuery();

                        id = (int)outputId.Value;
                    }
                }
                conn.Close();
            }
            return(id);
        }
Beispiel #2
0
        public HttpResponseMessage TitlesUpdate(SequenceTitlesUpdateRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
            }
            ItemResponse <int> response = new ItemResponse <int>();

            response.Item = SequenceService.TitlesUpdate(model);
            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }