コード例 #1
0
 /// <summary>
 /// Converts database models to a business logic object.
 /// </summary>
 public static BusinessLibrary.Models.Client Convert(Client_db instance)
 {
     if (instance == null)
     {
         return(null);
     }
     return(new BusinessLibrary.Models.Client(instance.Id, instance.Dob, instance.FirstName, instance.LastName, instance.Weight, instance.Height, instance.WaistCircumference, instance.HipCircumference, instance.NeckCircumference));
 }
コード例 #2
0
        /// <summary>
        /// Adds a new instance into the database.
        /// </summary>
        public static Client_db Add(DateTime dob, string name, double weight, double height, double waistCircumference, double hipCircumference, double neckCircumference,
                                    DbContext context, out StatusResponse statusResponse)
        {
            try
            {
                // Validate
                if (string.IsNullOrEmpty(name?.Trim()))
                {
                    throw new StatusException(HttpStatusCode.BadRequest, "Please provide a name.");
                }

                // Generate a new instance
                Client_db instance = new Client_db
                                     (
                    id: Convert.ToInt32(Guid.NewGuid()),     //This can be ignored is PK in your DB is auto increment
                    dob,
                    name,
                    weight, height,
                    waistCircumference, hipCircumference, neckCircumference
                                     );

                // Add to database
                int rowsAffected = context.ExecuteNonQueryCommand
                                   (
                    commandText: "BEGIN; INSERT INTO client (clientId, weight, height, waist_circ, hip_circ, neck_circ) values (@id, @weight, @height, @waist_circumference, @hip_circumference, @neck_circumference); INSERT INTO user (userID, name, DoB) values (@id, @name, @dob); COMMIT;",
                    parameters: new Dictionary <string, object>()
                {
                    { "@id", instance.Id },
                    { "@dob", instance.Dob },
                    { "@name", instance.Name },
                    { "@weight", instance.Weight },
                    { "@height", instance.Height },
                    { "@waist_circumference", instance.WaistCircumference },
                    { "@hip_circumference", instance.HipCircumference },
                    { "@neck_circumference", instance.NeckCircumference }
                },
                    message: out string message
                                   );
                if (rowsAffected == -1)
                {
                    throw new Exception(message);
                }

                // Return value
                statusResponse = new StatusResponse("Client added successfully");
                return(instance);
            }
            catch (Exception exception)
            {
                statusResponse = new StatusResponse(exception);
                return(null);
            }
        }
コード例 #3
0
        /// <summary>
        /// Retrieves specific instance
        /// </summary>
        public static Client_db GetClient(int id,
                                          DbContext context, out StatusResponse statusResponse)
        {
            try
            {
                // Get from database
                DataTable table = context.ExecuteDataQueryCommand
                                  (
                    commandText: "SELECT * FROM client NATURAL JOIN user WHERE id = @id",
                    parameters: new Dictionary <string, object>()
                {
                    { "@id", id },
                },
                    message: out string message
                                  );
                if (table == null)
                {
                    throw new Exception(message);
                }

                // Parse data
                Client_db instances = new Client_db();
                foreach (DataRow row in table.Rows)
                {
                    instances = new Client_db(
                        id: Convert.ToInt32(row["id"]),
                        dob: Convert.ToDateTime(row["dob"]),
                        name: row["name"].ToString(),
                        weight: Convert.ToDouble(row["weight"]),
                        height: Convert.ToDouble(row["height"]),
                        waistCircumference: Convert.ToDouble(row["waist_circumference"]),
                        hipCircumference: Convert.ToDouble(row["hip_circumference"]),
                        neckCircumference: Convert.ToDouble(row["neck_circumference"])
                        );
                }

                // Return value
                statusResponse = new StatusResponse("Clients list has been retrieved successfully.");
                return(instances);
            }
            catch (Exception exception)
            {
                statusResponse = new StatusResponse(exception);
                return(null);
            }
        }