public Result SaveNewChanges(string fileName, Stream fileStream) { try { byte[] fileData; using (var ms = new MemoryStream()) { fileStream.CopyTo(ms); fileData = ms.ToArray(); } var assemblyInfo = AssemblyChanges.GetAssemblyInfo(fileName, fileData); var historyList = _dataProvider.LoadChangesHistory(assemblyInfo.Assembly.Id); var newChanges = assemblyInfo.Members .Except(historyList) .ForEach(o => o.CommitDate = DateTime.Now) .ToList(); assemblyInfo.Members = historyList; assemblyInfo.Members.AddRange(newChanges); _dataProvider.AddAssembly(assemblyInfo); return(Result.Ok()); } catch (Exception ex) { return(Result.Fail("Error: " + ex)); } }