Skip to content

Instantly share code, notes, and snippets.

@FLMFreddy
Created July 27, 2016 11:41
Chalenge solution
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DegreeConverter
{
public class TemperatureConverter
{
private Convert _convert;
public TemperatureConverter(Convert convert)
{
_convert = convert;
}
internal object CelsiusToFahrenheit()
{
return $"{_convert._converter.value * 1.8 + 32}f";
}
public object FahrenheitToCelsius()
{
var s = ((_convert._converter.value - 32)*0.56).ToString("N2", CultureInfo.InvariantCulture);
if (s.EndsWith(".00"))
{
return $"{s.Replace(".00", "")}c";
}
return $"{s}c";
}
}
public class DegreeConverter
{
private Convert _convert;
public DegreeConverter(Convert convert)
{
_convert = convert;
}
internal object DegreesToRadians()
{
var s = (_convert._converter.value*(Math.PI/180)).ToString("N2", CultureInfo.InvariantCulture);
if (s.EndsWith(".00"))
{
return $"{s.Replace(".00", "")}r";
}
return $"{s}r";
}
internal object RadiansToDegrees()
{
return $"{System.Convert.ToInt32(_convert._converter.value*(180/Math.PI))}d";
}
}
public class Convert
{
internal Converter _converter;
private readonly TemperatureConverter _temperatureConverter;
private readonly DegreeConverter _degreeConverter;
public Convert(Converter converter)
{
_converter = converter;
_temperatureConverter = new TemperatureConverter(this);
_degreeConverter = new DegreeConverter(this);
}
public object Conversion()
{
object degrees;
if (_converter.conversion_instruction[0].Equals('r'))
{
degrees = _degreeConverter.RadiansToDegrees();
return degrees;
}
else if (_converter.conversion_instruction[0].Equals('c'))
{
degrees = _temperatureConverter.CelsiusToFahrenheit();
return degrees;
}
else if (_converter.conversion_instruction[0].Equals('f'))
{
degrees = _temperatureConverter.FahrenheitToCelsius();
return degrees;
}
else
{
degrees = _degreeConverter.DegreesToRadians();
return degrees;
}
}
}
public class Converter
{
internal double value;
internal string conversion_instruction;
private readonly Convert _convert;
public Converter(string v)
{
this.conversion_instruction = v.Substring(v.Length - 2);
var format = new NumberFormatInfo();
format.NumberGroupSeparator = ".";
this.value = Double.Parse(v.Replace(conversion_instruction, ""), format);
_convert = new Convert(this);
}
public Convert Convert
{
get { return _convert; }
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DegreeCmd
{
class Program
{
static void Main(string[] args)
{
var app = new DegreeConverter.Converter(args[0]);
Console.WriteLine(app.Convert.Conversion());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment