You will need to use geoprocessing tools probably.
Run a geoprocessing task and python script | ArcGIS for Developers
I personally use python to do these types of task. If I want a gui aspect to it I will just put the python script in the solution and run it from there.
public async Task<IGPResult> ExecuteModel()
{
var progDlg = new ProgressDialog("Running Geoprocessing Tool", "Cancel");
progDlg.Show();
var progSrc = new CancelableProgressorSource(progDlg);
var pathPython = System.IO.Path.GetDirectoryName((new
System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath);
pathPython = Uri.UnescapeDataString(pathPython);
System.Diagnostics.Debug.WriteLine(pathPython);
var tool_path = System.IO.Path.Combine(pathPython, @"PytonToolbox.pyt\Tool");
var parameters = Geoprocessing.MakeValueArray();
IGPResult gp_result = await Geoprocessing.ExecuteToolAsync(tool_path,
parameters, null, new CancelableProgressorSource(progDlg).Progressor);
Geoprocessing.ShowMessageBox(gp_result.Messages, tool_path,
gp_result.IsFailed ? GPMessageBoxStyle.Error : GPMessageBoxStyle.Default);
return gp_result;
}