/// <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)); }
/// <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); } }
/// <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); } }